zoukankan      html  css  js  c++  java
  • 防范CSRF(一)

    CSRF是跨网站伪造请求的缩写。大致的攻击流程是,黑客获得浏览器向服务器发送的请求,然后对请求进行修改,让服务器执行指定的操作。

    防范方式可以使用微软提供的解决方案。

    View放置Html.AntiForgeryToken();后端在需要接收验证的方法上面打上特性标签[ValidateAntiForgeryToken]即可。

    示例如下:

    View代码:

    <div>
    防范CSRF攻击说明
    <p>前端加上@Html.AntiForgeryToken();后端加上[ValidateAntiForgeryToken]</p>
    @using (Html.BeginForm("Test", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
    {
      @Html.AntiForgeryToken();
      <div>
        <input type="text" name="textValue" class="form-control" value="" />
      </div>
      <div>
        <input type="submit" value="测试" class="btn btn-primary" />
      </div>
    }
    </div>

    Controller代码:

    [ValidateAntiForgeryToken]
    public ActionResult Test()
    {
      return null;
    }

    原理:

    在用户进入页面的时候,会产生一份名为_RequestVerificationToken的cookie,内容是经过编码的信息,发送请求时,先检查这个cookie中的这个信息是否存在,然后才去检查其余内容是否正确,如果正确才会放行。

  • 相关阅读:
    SqlParameter构造函数让人大吃一斤
    ASP.NET的图片上传和显示
    不去琢磨什么CSS后代选择器之类的鸟玩意了
    datatable里添加一个标识列
    提高工作效率
    调试无法命中断点问题
    离DBA还有多远?
    开发守则
    方法或函数也可以用泛型
    母版页访问内容页
  • 原文地址:https://www.cnblogs.com/sunice/p/6286354.html
Copyright © 2011-2022 走看看