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.   或是直接绑定到视图模型,直接包含自己想要绑定的字段
  • 相关阅读:
    jQuery 回到顶部
    c# 获取客户端ip
    JS 新浪API获取IP归属地
    c#抓取网站数据
    ECLIPSE最常用快捷键排名
    BinarySearchTree示例——C++模板实现
    SICP 找零钱问题背后的思考
    关于解引用*和箭头操作符->的重载
    traits技法小计
    最大和子序列问题
  • 原文地址:https://www.cnblogs.com/qiuguochao/p/6608100.html
Copyright © 2011-2022 走看看