zoukankan      html  css  js  c++  java
  • 关于最近的CSRF攻击

    摘要

    最近公司内部爆出一大波页面没有加token校验,然后各路大神就开始进行CSRF攻击了。CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

    什么是CSRF攻击?

    CSRF(Cross-site request forgery),中文名称:跨站请求伪造。没什么高大上的,按字面上这么理解可以了。别的网站往你网站里发一个操作请求,然后,你的网站也不加校验一下是不是用户从你点击发送过来的操作,就直接处理了。
    然后坏人随便做个网站,里面就一个静态页,包含一段自动发送操作请求的代码

    <!-- 神奇的网页,点开就会偷钱的 -->
    <form action="Transfer.php" method="POST">
        <p>ToBankId: <input type="text" name="toBankId" value="xxx" /></p>
        <p>Money: <input type="text" name="money" value="1000" /></p>
        <p><input type="submit" value="Transfer" /></p>
    </form>
    

    就这么简单的一个静态页,然后就可以实现CSRF攻击了。比如把这个网站发到我们论坛上,www.woshihuairen.com 点开有美女裸照哟。然后你点了,然后你悲剧了。

    如何防止CSRF攻击

    校验来源,跨站的请求不接受即可。

    参考文献
    浅谈CSRF攻击方式

    简要说一下我们如何使用token来防御CSRF

    1. 前台from表单里面加入Token字符串

       @Html.AntiForgeryToken()
       //如果是ajax提交,提交参数还要加入:__RequestVerificationToken: $("input[name=__RequestVerificationToken]").val()
      
    2. 后台Action上面加入token验证的Attribute

       [HttpPost,ValidateAntiForgeryToken]
       public ActionResult xxx()
       {
       }
      

    Oh yeah,每次请求都有一段奇怪的验证码,再也不怕跨站请求了,可以高枕无忧咯

    ...

    无忧个蛋蛋啊,摔。

    还有提防这货 ---- XSS跨站脚本攻击,否则上面所做的一切都白做了。

  • 相关阅读:
    A Simple Problem with Integers poj 3468 多树状数组解决区间修改问题。
    Fliptile 开关问题 poj 3279
    Face The Right Way 一道不错的尺取法和标记法题目。 poj 3276
    Aggressive cows 二分不仅仅是查找
    Cable master(二分题 注意精度)
    B. Pasha and String
    Intervals poj 1201 差分约束系统
    UITextField的快速基本使用代码块
    将UIImage转换成圆形图片image
    color转成image对象
  • 原文地址:https://www.cnblogs.com/quan2005/p/4350442.html
Copyright © 2011-2022 走看看