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中的这个信息是否存在,然后才去检查其余内容是否正确,如果正确才会放行。

  • 相关阅读:
    zoj 3593 One Person Game
    poj 2115 C Looooops
    hdu 1576 A/B
    hdu 2669 Romantic
    poj1006 Biorhythms
    中国剩余定理(孙子定理)
    Pseudoprime numbers---费马小定理
    青蛙的约会----POJ1061
    [POJ2942]:Knights of the Round Table(塔尖+二分图染色法)
    [BZOJ1718]:[Usaco2006 Jan] Redundant Paths 分离的路径(塔尖)
  • 原文地址:https://www.cnblogs.com/sunice/p/6286354.html
Copyright © 2011-2022 走看看