zoukankan      html  css  js  c++  java
  • [ASP.NET MVC]笔记(三) 成员资格、授权和安全性

    • 阻止CSRF(跨站请求伪造)

      ASP.NET MVC提供了一个阻止CSRF攻击的好方法

      在每个提交的表单中包含

      

    @using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        //调用@Html.AntiForgeryToken()生成一个防伪标记
        @Html.AntiForgeryToken()
        <input type="text" name="text"/>    
        <input type="submit" value="提交" />
    
    }
    

      在请求的控制器的控制器操作上声明[ValidateAntiForgeryToken]特性

      

    [ValidateAntiForgeryToken]
    public ActionResult Index(string text)
    {
        .........
        return View();
    }
    
    •  HttpReferrer验证

      验证提交表单的客户端是否在目标站点上

    public class IsPostendFromThisSiteAttribute :AuthorizeAttribute
    {
         public override void OnAuthorize(AuthorizationContext filterContext)
        {
              if(filterContext.httpContext!=null)
              {
                    if(filterContext.httpContext.Request.UrlReferrer==null)
                   {
                        throw new System.Web.HttpException("无效提交");
                   }
                  if(filterContext.httpContext.Request.UrlReferrer.Host=!="mysite.com")
                   {
                        throw new System.Web.HttpException("非法的提交站点"");
                   }
              }
        }  
    }    
    

      然后再添加自定义的过滤器

    [IsPostedFromThisSite]  
    public ActionResult Register(…)  
    
    •   使用HttpOnly防止Cookie被盗窃获取

      可以在程序中为编写的每个cookie单独设置,告知浏览器除了服务器能修改设置Cookie之外,其他的操作均无效

     

    Respone.Cookies["password"]="123456";
    
    Respone.Cookies["password"].HttpOnly=true;
    

      

    •   使用Bind特效防御重复提交攻击

      Bind特效既可以放在模型类上,也可以放在控制器上。

    1.   白名单方法允许绑定的字段如:[Bind(Include=“Name,Age”)]
    2.   或是黑名单禁止绑定的字段:[Bind(Exclude=“StduentID”)]
    3.   或是直接绑定到视图模型,直接包含自己想要绑定的字段
  • 相关阅读:
    我也受不了这扯蛋的IE6/7了
    子元素的margintop与父元素合并的问题
    在是否使用浮动上的纠结
    CSS中zoom:1是怎么回事
    java.util.ConcurrentModificationException异常解决方法
    【转】单例模式
    servlet中实现页面跳转的两种方法
    tomcat日志,用户以及启动时的一些问题
    【转】自定义 Java Annotation
    jsoup的使用
  • 原文地址:https://www.cnblogs.com/qiuguochao/p/6608100.html
Copyright © 2011-2022 走看看