zoukankan      html  css  js  c++  java
  • csrf跨站请求伪造

    如何杜绝跨站请求伪造?

    1.要让服务器知道本次请求是不是冒用了用户的身份→

    2.服务器发给用户一个凭证,用户请求时需携带此凭证→

    3.此凭证只能用户看到而且冒用者看不到→

    4.这就用到了浏览器的安全机制(同源策略).比如

       1.js不能访问本页面其他域的iframe(试图访问,chrome会报错Blocked a frame with origin "null" from accessing a cross-origin frame)

       2xhr对象不能跨域请求

       3.js不能访问其他窗口的内容(窗口A定义变量var a,在窗口B访问a(若窗口B没有定义变量a),会是undefined)

    5.不要把关键的请求的动作放在URI中,因为如果用户点击了恶意者发过来的链接就会被坑.

    5.因此要把此秘钥放在用户发起请求所在的页面中(header,input),其他域引用的js脚本无权访问这个页面的内容.

    6.发起请求绝对不能是get,放在

    7.在服务器端,把此秘钥存在SESSION里.或在浏览器端,存在COOKIE里,但一定设置为http-only,防止其他域的脚本偷看此COOKIE

    8.在服务器端,对header或input的秘钥值与cookie或session的秘钥对比

    疑问,为何放在cookie中多此一举,就算http only,万一cookie被攻陷了怎么办?链接

    OK了

  • 相关阅读:
    Mac使用nginx+rtmp服务器
    iOS开发必不可少的76个工具
    AVPlayer缓存实现
    视频直播分析
    github部分有意思的库记录
    iOS四种多线程(swift和oc)
    Java的static关键字浅析
    JavaScript获取屏幕参数
    JavaScript中XMLHttpRequest实现跨域访问
    【CenchaTouch 学习笔记】Controller
  • 原文地址:https://www.cnblogs.com/ch459742906/p/6053179.html
Copyright © 2011-2022 走看看