跨站请求伪造(Cross-site request forgery)

大概的伪造流程是:在很多网站我们都会基于cookie存储一些由服务端产生的session或者token、假设我有在一个A网站登录、这时候A网站里面已经就存储了cookie信息、然后我在B网站的时候、我去拿A网站的一个GET接口、这个时候我直接通过B网站去访问请求A网站的接口、这个时候就会把A网站的cookie携带上!

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="app"></div>
  11. </body>
  12. </html>
  13. <script>
  14. let app = document.getElementById("app");
  15. app.innerHTML = `<img src="https://www.baidu.com/sugrec" onerror=""/>`;
  16. </script>

image.png

CSRF防御

  • GET请求不做数据修改