MVC 应用程序的安全性

1、[Authorize]

  为控制器设置访问权限。如:角色、用户、角色和用户结合(可以设置一个或多个,中间用逗号隔开)。 如下例:
  【角色】
  [Authorize(Roles="Administrator,Guest,SuperAdmin")]
  【用户】
  [Authorize(Users="Jon,Jim,Scott")]
  【角色和用户】
  [Authorize(Roles="Administrator,Guest,SuperAdmin",Users="Jon,Jim,Scott")]

2、威胁:跨站脚本

  被动注入:用户将不干净的内容输入到文本框中并将其保存到数据库中,以后再重新在页面上显示。
    比如在博客评论中,如果程序员在编写程序时没有对评论内容进行HTML编码,黑客就会在评论内容中添加一个iframe标记并保存到数据库,下次再打开这个             页面就会自动加载一个iframe框架。

  主动注入:用户将不干净的内容输入到文本框中,并将输入的内容立刻在屏幕上显示出来。
    所有的站点都有站内搜索功能,用户在输入内容并提交时,黑客会让网页弹出比如一个登录窗体。如果当前网站是需要登录的,并且黑客制作的登录页面与当               前网站页面样式一致,不仔细的用户极有可能将自己的账号和密码泄漏给黑客。当然黑客的登录界面是指向站外的其他地址。

3、阻止XSS
  对所有内容进行HTML编码:对于MVC而言,只需要在视图中使用HTML.Encode和HTML.AttributeEncode就可以实现对特定值的编码替换。
                Razor视图引擎默认对输出内容采用HTML编码,所以使用@model.FirstName

  Html.Attribute和Url.Encode:
                Html.AttributeEncode(Viewdata("Name"))
                Url.Encode(Url.action(...))

  JavaScript编码:Html编码并不能组织JavaScript的攻击。
          @Encode.JavaScriptEncode(...)并不能过滤JavaScript的攻击
          @Ajax.JavaScriptStringEncode辅助函数对在JavaScript中使用的字符串编码。    

  将AntiXss库作为ASP.NET的默认编码器:AntiXss使用信任字符的白名单。
          从http://wpl.codeplex.com下载AntiXss库,在当前项目中添加引用。
          在web.config文件中将AntiXss注册为应用程序的编码器。
          <system.web>
            <httpruntime encodetype="AntXssencoder,AntiXssLibrarydll"/>
          </system.web>
          当任何时候调用Html.code方法或使用Html编码代码块<%:%>时,AntiXss会对其进行编码
          它即进行HTML编码Ye进行JavaScript编码。
          @using MicroSoft.Security.Application

4、跨站请求伪造
  简称CSRF,用户的浏览器收到了愚弄,以至于误用其权限。将用户呈现给远程的网站。
  CSRF攻击是基于浏览器的工作方式来运行的。使用XSS加混淆代理来实现对某位用户的攻击是CSRF的核心。

  阻止CSRF攻击:
        令牌验证<@Html.antiforgeryToken()>   [ValidateantforgeryToken]
        幂等的Get请求:如果一个操作是幂等的,就可以提交多次而不改变执行结果。仅使用post请求修改就可以防御全部的CSRF攻击。
        HttpReferrer:

5、Cookie盗窃(回话Cookie、持久性Cookie)
  黑客往往会在用户毫不知情的情况下将用户的cookie盗取。

  阻止cookie盗窃:webcofig文件中对所有cookie设置
  <httpcookies domain="" httponlycookies="true" requiressl="flase"/>
  又或者对特定cookie设置:response.cookies[""]


  

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2013-07-11 13:34  振翅翱翔  阅读(357)  评论(0编辑  收藏  举报