表单、AJAX 提交必须执行 CSRF 安全验证

CSRF 定义

[CSRF 百度百科](https://baike.baidu.com/item/CSRF/2735433)
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

实现原理

  • 跳转页面前生成随机token,并存放在session中。
  • form中将token放在隐藏域中,保存时将token放头部一起提交。
  • 获取 token,与session中的token比较,一致则通过,否则不予提交。
  • 生成新的token,并传给前端。

参考代码

//定义配置文件
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = '_token';
$config['csrf_session_name'] = 'csrf_session_token';
$config['csrf_expire'] = 7200;

public function set_csrf_hash()
{}

public function get_csrf_hash()
{}

public function csrf_verify()
{}


Thanks ~

你可能感兴趣的:(表单、AJAX 提交必须执行 CSRF 安全验证)