华赐软件 Bootstrap3

MVC站点安全开发

一、XSS攻击

  默认情况下,从@表达式生成的所有文本都是HTML编码过的,但由于某些情况下要显示HTML文本时,必须对于进行白名单过滤。
  使用微软的 HtmlSanitizationLibrary.Dll库进行白名单过滤
  Sanitizer.GetSafeHtmlFragment(InputHtml);

二、SQL注入

  对所有的SQL语句及参数进行全面的过滤

三、防止CSRF(跨网站请求伪造),只针对POST请求

  Action前加入[ValidateAntiForgeryToken(Salt ="密钥")]
  在Form表单中加入@Html.AntiForgeryToken("密钥");

四、Cookie窃取

  对用户输入进行过滤,避免被截持Cookie,避免被绕过过滤

五、其他细节

  1.CustomErrors Mode=“on",发布网站时必须为On,避免错误暴露
  2.[nonaction]锁定不开放的Action
  3.[AcceptVerbs(HttpVerbs.Post)]限定页面的访问形式

http://www.cnblogs.com/htht66/archive/2012/01/29/2330831.html

内容介绍

 

 

-          常见网络安全攻击隐患

-          针对asp.net mvc防御体系

预备知识

 

 

-          安装VS2010

-          了解ASP.NET

-          了解Ajax基础知识

-          了解设计模式基本概念

安全性策略

SQL注入攻击

 

 

跨站脚本攻击

 

 

1 任何时候接受用户输入的时候都必须做好Encode,把所有的html标记去了.

2 永远不要对任何人使用不加检查的html操作输入

3 对cookie进行

常见攻击方式及其防范

 

 

·跨站脚本攻击

·跨域请求

·Cookie窃取

·超载攻击方式

Cross-site scripting (XSS

 

 

- 跨站脚本攻击

使用XSS与CSS区别开

 

 

有两种,一种用户输入的信息有恶意脚本,信息没有过滤保存到数据库里面了。任何用户访问这个网页都可以看到这个脚本,所以就导致攻击了。这种称为被动攻击,因为被攻击者需要自己去查看这些信息。

 

 

另一种是主动攻击直接把信息推到用户端去。

 

 

被动攻击常见是使用iframe 的 src 到另一个网址。

 

 

主动注入常见篡改IE主页

 

 

避免XSS的办法

 

 

使用HTML.Encode来实现格式化所以内容

 

 

<%html.Encode(Model.FirstName)%>

 

 

<%:Model.FirstName)%> (mvc2 特性)

 

 

@webform已经内嵌Encode

 

 

 

Javascript 编码

 

 

 

 

对Url 传递过来的参数加以过滤

 

 

 

 

跨站请求

 

 

通过欺骗用户的浏览器来实现的。攻击者通过构造恶意代码,让浏览者替代攻击者去攻击其他目标网站。称为借刀杀人。

 

 

 

避免跨站欺骗攻击

 

 

 

盗用cookies

 

 

-          Session cookies-

-          序列化cookies

持久化cookies的窃取

 

 

 

避免cookie被盗

 

 

 

httpOnly=true,意思是只可在服务端进行读写;在客户端读取,不可写。

 

 

 

可以在webconfig中设置。

 

 

 

关于重复提交、

 

 

 

使用白名单或者黑名单,限制那些列不可修改。、

 

 

避免暴露错误信息

 

 

 

发布网站改为On

 

 

保护你的controller

 

 

-【Authorize】来锁定你的Action

-【nonaction】来锁定所有不开发的Action

即没有Action的函数,供内部使用的函数。

 

 

总结

 

 

跨站脚本攻击

 

 

注入攻击

 

 

Cookies盗取

 

posted @ 2013-02-28 09:35  OpenCsharp.Net  阅读(297)  评论(0编辑  收藏  举报
华赐软件 Bootstrap3
w.huacisoft.com">华赐软件 Bootstrap3