zoukankan      html  css  js  c++  java
  • CORS和CSRF

    CORS和CSRF

    什么是CORS?
    CORS是一个W3C标准,全称是"跨域资源共享",他允许浏览器向夸源服务器,发出XMLHTTPRequest请求,从而克服了AJAX只能同源使用的限制.

    什么是CSRF?
    名为跨站请求伪造,指攻击者盗用了你的身份,以你的名义发送恶意请求,CSRF主流防御方式是在后端生成表单的时候生成遗传随机token,内置到表单里成为一个字段,同时,将此串token置入session中.每次表单提交到后端时都会检查这两个值是否一致,以此来判断此次表单提交是否是可信的.提交过一次之后,如果这个页面没有生成CSRF token,那么token将会被清空,如果有新的需求,那么token会被更新.
    攻击者可以伪造POST表单提交,但是他没有后端生成的内置于表单的token,session中没有token都无济于事.

    如何去解决CSRF跨域请求伪造问题?

    防止CSRF攻击的步骤

    1. 在客户端向后端服务器请求页面数据时, 后端会在响应的token中设置csrf_token的值
    2. 在前端的From表单中也添加了一个隐藏的字段, 这个字段的值也是csrf_token
    3. 在用户点击提交的时候, 会带上表单中的csrf_token和cookie中的csrf_token一起发送到后端服务器
    4. 后端服务器接收前端发送过来的请求
      1. 从cookie中取出csrf_token
      2. 从From表单中取出隐藏的csrf_token值
      3. 对这两个token值进行对比
    5. 如果比对之后这连个值一样, 则表示这个是正常的请求, 如果对比之后发现这两个值不一样, 则说明这个是不正常的请求, 服务器端不需要做处理

       

  • 相关阅读:
    vuejs组件交互
    markdown table语法
    vue循环中的v-show
    apache跨域
    sublime text执行PHP代码
    PHP语法
    方法(method)和函数(function)有什么区别?
    PHP MVC单入口
    phpstudy部署thinkPHP
    MACD判断定背离,底背离
  • 原文地址:https://www.cnblogs.com/Infernal/p/11282443.html
Copyright © 2011-2022 走看看