参考资料

  1. Web应用防火墙(WAF)防篡改功能
  2. WAF是一种用于保护Web应用程序
  3. XSS攻击防护
  4. CSRF跨站请求伪造是一种网络攻击方式
  5. WAF防火墙吞吐量
  6. waf 防护HTTPS流量的原理
  7. waf 防爬虫简介
  8. DDoS攻击类型与方式

CSRF跨站请求伪造是一种网络攻击方式

CSRF防护

简介:
CSRF(Cross-Site Request Forgery)跨站请求伪造是一种网络攻击方式,攻击者诱导用户在当前已登录的Web应用上执行非本意的操作。CSRF防护旨在防止此类攻击。

功能说明:

  1. 验证请求来源

  2. 检查Referer头

  3. 使用CSRF Token

  4. 设置SameSite Cookie属性

  5. 验证自定义HTTP头

操作示例(以CSRF Token为例):

  1. 服务端生成Token:

// 生成随机Token
$csrfToken = bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $csrfToken;
  1. 表单中包含Token:

<form action="/process" method="POST">
    <input type="hidden" name="csrf_token" value="<?php echo $csrfToken; ?>">
    <!-- 其他表单字段 -->
    <input type="submit" value="提交">
</form>
  1. 服务端验证Token:

if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    // Token不匹配,拒绝请求
    die("CSRF验证失败");
}
// 继续处理请求
  1. AJAX请求示例:

// 从meta标签获取Token
const token = document.querySelector('meta[name="csrf-token"]').content;

fetch('/api/endpoint', {
    method: 'POST',
    headers: {
        'X-CSRF-TOKEN': token,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({data: 'example'})
});