我最近创建了一个使用ASP.NET MVC的个人项目(撰写本文时为RC1).我的背景是传统的ASP.NET WebForms开发.
我的知识ASP.NET MVC是有限的,所以我想了解如何最好地进行身份验证,输入验证和防止常见攻击(XSS,XSRF等)的输入.
我首先列出一些文章Stephen Walther在他的博客上发布的文章:
提示#7 - 使用Html.Encode防止JavaScript注入攻击
提示#10 - 防止URL操纵攻击
提示#46 - 不要使用删除链接,因为它们会创建安全漏洞
验证:
xVal验证框架
谢谢,
阿妮
脱离我的头顶(并且远未完成)......
在所有表单上使用AntiForgeryToken以防止XSRF.使用单元测试确保接受POSTS的所有控制器操作都使用ValidateAntiForgeryToken属性进行修饰.
尽可能利用HtmlHelper扩展来利用自动HTML编码.
对所有数据库访问使用带参数化查询的ORM - 不是MVC独有的,但仍然相关.
在您接受的最低要求的HTTP谓词中具有限制性.使用DELETE(vi AJAX)或POST进行删除操作.
使用AuthorizeAttribute或从其派生的属性来保护非公共操作.
不要在可能被缓存的URL中公开用户ID /密码(即,通过表单POST而不是GET URL登录).与往常一样,使用SSL传递敏感数据.