You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无文本输入/文本域的AJAX关注表单是否需要CSRF Token?

必须添加CSRF Token,原因如下:
  • CSRF攻击的核心是利用用户已认证的会话权限发起未授权状态修改请求,和表单里有没有文本输入框/textarea完全无关。你的场景是“用户1关注用户3”,这属于对服务器状态的修改操作(比如更新关注关系表),天然就是CSRF攻击的目标。
  • 举个实际攻击场景:攻击者可以构造一个恶意页面,里面隐藏一段JS代码,自动向你的服务器发送和你这个AJAX完全一样的关注请求。只要你的用户(已登录状态)不小心打开了这个恶意页面,就会在不知情的情况下完成关注操作——因为请求会自动携带用户的登录Cookie,服务器会误以为是用户主动发起的请求。
  • 哪怕你的表单没有任何输入字段,只要是非幂等的状态修改请求(POST/PUT/DELETE这类),都必须做CSRF防护。
简单的实现方式参考:
  • 可以在页面的meta标签里嵌入CSRF Token:<meta name="csrf-token" content="你的Token值">
  • 然后在AJAX请求里,把这个Token放到请求头里(比如X-CSRF-Token),或者作为POST参数一起发送
  • 服务器端验证请求里的Token和用户会话中存储的Token是否一致,不一致则拒绝请求

额外提醒:别用GET请求来处理这个关注操作!GET请求的参数会暴露在URL里,而且更容易被通过图片标签、链接等方式触发CSRF,一定要用POST这类更安全的请求方法。

内容的提问来源于stack exchange,提问作者Jean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:52:28