分享

ASP.NET MVC 应用程序的安全性,看一眼你就会了

 昵称10504424 2014-08-14
.使用Authorize特性登陆
对于我们开发程序而言,基本上都是要求角色成员使用Authorize特性,比如,对于管理员而言角色是Admin,对于登陆注册登陆用户而言是User那么我们在用户登陆的时候添加

这样就添加了一个User角色,然后,我们再控制器上添加角色验证,如下:

这样一来,Index页面就只能是有User角色的人才能访问,

如果用户没有User角色,但是强制访问会怎么呢?下面我们再web.config配置文件中添加一个跳转页面,没有通过角色验证的用户会跳转到指定的页面,下面是跳转到登录页面Login

好了,这就有搞定了,简单吧。

 

2.防止XSS攻击

   1.对所有的内容进行HTML编码, 使用@Html.Encode 或者 @Html.AttributeEncode

   2.对Url进行编码,使用@Url.Encode

   3.对javascript编码,使用@Html.JavaScriptEncode

 

3.令牌验证

    在form表单中添加  @Html.AntiForgeryToken(),然后在控制器中添加  [ValidateAntiforgeryToken]

 

4.使用HttpOnly阻止Cookie盗窃

   在webconfig中添加 <httpCookies domain="" httpOnlyCookies="true" requireSSL="false" />

   或者  Response.Cookies["MyCookie"].HttpOnly=true;

 

5.使用Bind特性只接收表单中有的属性

   如:[bind(Include="UserName,PassWord")]

   这里我是有个疑问, 为什么这个能防御重复提交攻击,本人认为这应该是不能达到的。而是避免提交攻击性的数据,比如视图提交表单之外的其他数据。

 

以上都是项目中经常会用到的,当然,也许你有更好的办法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多