欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
通过扩展CodeIgniter 4 核心类的方式实现SQL执行数量的统计功能 运行老的PHP程序遇到 Call to undefined function set_magic_q
未知  csrf-token写在head的meta里面怎么做到防止csrf
[ 发布日期:1年前 (2023-11-27) ]   [ 来自:本站原创 ] [分类:其它运维与编程]
一般在正常 form 表单页面,通常是使用 hidde 隐藏字段来存储crsf token 令牌值。

但是如果使用的是Ajax等异步post时,则可将其放到js代码可以访问到令牌值的地方即可.

这种情况下,将csrf-token写在head的meta里是一种比较好的实现方式。

html Meta标签代码如下:
<meta name="csrf-token" content="xxx">


如果使用的是jQuery,可以直接全局初始化
可以将csrf令牌放置到header请求头中:
[复制到剪贴板]

$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); 




当然,这也要求你使用的框架或者系统在检测 csrf token时需要检测http头的值
例如 CodeIgniter4 是按下面顺序检查 csrf token 值:

  1. $_POST 数组
  2. HTTP 头
  3. php://input (JSON 请求) - 这种方法是最慢的,因为我们必须解码 JSON 然后重新编码它
  4. php://input (原始 body) - 适用于 PUT、PATCH 和 DELETE 类型的请求

引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/272
复制引用地址https://www.rickw.cn/trackback/272/GBK
[本日志由 rick 于 1年前 (2023-11-27) 编辑]
[ 分类:其它运维与编程  | 查看:427 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5