对CSRF的理解及防范

CSRF的理解:

假定a是一个银行网站, b是一个危险网站. 当用户在访问a, 并且session并未结束的情况下, 去访问b网站, b网站就可以通过隐藏的url或者是表单来伪造用户对a的get或者post操作.

CSRF的防范:

在用户登陆网站时, 在session中设置一个随机数(csrf_token).

  • 在用户打开敏感请求页面时, 在form中添加一个隐藏的隐藏的字段, 例:
<input type="hidden" name="csrf_token" value="<? php $_SESSION['csrf_token'] ?>">
  • 如果用户通过AJAX进行敏感请求, 则需要在用户的jQuery ajax中统一设置csrf_token

这样的话, 网站b伪造的请求就不会有这个隐藏字段, 就会被识破

原文地址:https://www.cnblogs.com/forzhaokang/p/8006077.html