一、XSS攻击
默认情况下,从@表达式生成的所有文本都是HTML编码过的,但由于某些情况下要显示HTML文本时,必须对于进行白名单过滤。使用微软的 HtmlSanitizationLibrary.Dll库进行白名单过滤 Sanitizer.GetSafeHtmlFragment(InputHtml);
二、SQL注入
对所有的SQL语句及参数进行全面的过滤;
三、防止CSRF(跨网站请求伪造),只针对POST请求
Action前加入[ValidateAntiForgeryToken(Salt ="密钥")] 在Form表单中加入@Html.AntiForgeryToken("密钥");
四、Cookie窃取
对用户输入进行过滤,避免被截持Cookie,避免被绕过过滤;
五、其他细节
- CustomErrors Mode=“on",发布网站时必须为On,避免错误暴露
- [nonaction]锁定不开放的Action
- [AcceptVerbs(HttpVerbs.Post)]限定页面的访问形式
- 可以考虑使用.net混淆器
- 项目发布时候,只发布必须的文件