Before I enable access to a new site, what steps should be done to make sure it's secure and "production ready"?
So far I have the following:
- logging of errors (via ELMAH)
- SSL is enabled, and I have a redirect from HTTP to HTTPS
<customErrors mode="RemoteOnly" />
- Compiled without Debug
My current tech stack is IIS7 & ASP.Net MVC3.
I'm sure I'm forgetting or not aware of many other items. Any advice?
First thing comes to mind is Search engine optimization (SEO). Use the SEO Toolkit by MS to get started.
To add to the above, I always run the free tool Xenu ( http://home.snafu.de/tilman/xenulink.html#Description ) to check for broken links. Even if you use another tool, this provides an excellent double check.
Consider placing a web.config in each sub-folder with appropriate permissions. For example if all images are held in a folder \images then that folder should not be able to serve up an ASCX file, only files with a proper image extension.
Are you doing something user friendly when you get a page not found, such as re-directing the user to a search page? Custom error pages can go a long way to making the site more useable.
You may want to have a robots.txt file and a custom icon, items that are often overlooked.