zoukankan      html  css  js  c++  java
  • CSRF 攻击原理及防护

      CSRF 的英文全称是 cross-site request forgery ,缩写也称 XSCF,也被称之为“one click attack” 或者 session riding;

      CSRF 和 XSS 非常的像,但是它们是有很大的区别的,并且攻击方式也不一样;XSS 是利用站点内的信任用户,而 CSRF 是通过伪装来自信任用户的请求来利用信任的网站;与 XSS 相比, CSRF 攻击往往不怎么流行也很难防范,所以它的危险性相对更高;

      常用的防御方法:1)、验证 http referer 字段;2)、在请求地址中添加 token 并验证;3)、在 http 头中自定义属性并验证;

    验证 http referer 字段

      根据 http 协议,在 http 头中有一个字段叫 referer ,它记录了该 http 请求的来源地址,在通常情况下,访问一个安全受限页面的请求来自于同一个网站,比如需要访问  http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory,用户必须先登录 bank.example ,然后通过点击页面上的按钮来触发转账事件,这时候,该转账请求的 http referer 值就会是转账所在页面的 url,通常以 bank.example 域名开头的地址,而如果黑客要对银行网站实施 CSRF 攻击,他只能在自己的网站构造请求;

      其实这种方法也并不是万无一失的,通过 http referer 的验证其实就是把安全交给了第三方,但是有些浏览器,例如:IE6 和 FF2 ,是可以有一些方法对 referer 的值进行篡改的;

    在请求头中添加 token 验证

      CSRF 攻击之所以能够成功,是因为黑客可以完全的伪造用户的请求,所以要地域 CSRF,关键在于请求中放入黑客不知道的或者所伪造不了的信息;

    在 http 中自定义属性并验证

  • 相关阅读:
    java实现第九届蓝桥杯最大乘积
    java实现第九届蓝桥杯最大乘积
    Anaconda入门使用指南
    Java安全——密钥那些事
    关于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析
    @Transactional事务几点注意
    三种方式都是通过某种公开的算法将原始信息进行编码 /加密
    信息摘要算法 MessageDigestUtil
    Java使用RSA加密解密签名及校验
    java util
  • 原文地址:https://www.cnblogs.com/mufc/p/11313612.html
Copyright © 2011-2022 走看看