zoukankan      html  css  js  c++  java
  • 关于csrf

    CSRF全称Cross Site Request Forgery,即跨站点请求伪造。

    我们需要关注两点:一个是跨站点,一个是"伪造"

    csrf应该是这样的:受害者正在打开某网站>攻击者欺骗或者诱导受害者访问攻击者自己的网站>受害者访问一个攻击者站点>攻击网站会自动发送http请求给受攻击的站点>因为受攻击站点保存了受害人登录的状态,导致服务器以为是受害者自己在操作

     下面是从乌云里拿到的图,大概流程就是这样:

    CSRF的攻击过程大致如图:

    CSRF攻击方式有两种:一种是HTML CSRF攻击,一种是JSON HiJacking攻击

    (1)HTML CSRF攻击:

    即利用HTML元素发出GET请求(带src属性的HTML标签都可以跨域发起GET请求),如:

    <link href="...">

    <img src="...">

    <iframe src="...">

    <meta http-equiv="refresh" content="0;url=...">

    <script src="...">
    <video src="...">
    <audio src="...">
    <a href="...">
    <table background="...">

    (2)JSON HiJacking攻击

    对于防御csrf,一般有

    1. 添加验证码
    2. 使用一次性token
    3. 验证Referer
    4. 限制Session生命周期
    5. 临时Cookie

    而使用验证码会影响用户体验,使用一次性token会因为随机性不够好或通过各种方式泄露,验证Referer有时候回因为有些请求不带Referer

    而临时Cookie原理与token差不多:当表单提交时,用JavaScript在本域添加一个临时的Cookie字段,并将过期时间设为1秒之后在提交,服务端校验有这个字段即放行,没有则认为是CSRF攻击。

  • 相关阅读:
    免费素材:推荐最新的免费图标字体Sosa
    如何选择Javascript模板引擎(javascript template engine)?
    名片设计最佳实践和技巧分享
    帮助你生成翻页效果的jQuery插件 bookblock
    网页网站收集
    main xml信息
    c# winrar 打包
    c# 压缩文件
    前端工程师
    fash 3D 游戏
  • 原文地址:https://www.cnblogs.com/thouger/p/5565685.html
Copyright © 2011-2022 走看看