社区
其他技术讨论专区
帖子详情
发送的http请求何时自带http头 x-csrf-token属性
weixin_38067813
2019-09-11 03:09:39
在yii中有时候发送请求会把x-csrf-token属性放入http头属性中,这种情况是什么条件造成的?能不能手动控制
...全文
1181
5
打赏
收藏
发送的http请求何时自带http头 x-csrf-token属性
在yii中有时候发送请求会把x-csrf-token属性放入http头属性中,这种情况是什么条件造成的?能不能手动控制
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38080819
2019-09-11
打赏
举报
回复
yii默认配置,可关闭。一般情况下不建议关闭。
weixin_38081987
2019-09-11
打赏
举报
回复
应该是不会自动带上 x-csrf-token 这个头信息的吧. 你遇到的过 带 和 不带 的情况, 都是一样的请求方式么? 都是自己手写的ajax? 而不是用的框架带的js库(比如 yii.activeForm.js)里面的方法发起的请求? 如果方便的话 请提供多一些信息.
weixin_38091211
2019-09-11
打赏
举报
回复
我也遇到这个这个情况,一个是没有表单的ajax 请求 不带X-CSRF-Token 另一个是有FORM的ajax 其实上我并没有用到FORM 页面上有FORM的自动给POST的请求头里面加上了X-CSRF-Token
weixin_38101261
2019-09-11
打赏
举报
回复
在yii1版本中并没有这个特性,yii.js中全局绑定了ajax的请求,并自动添加了一些属性比如: function initCsrfHandler() { // automatically send CSRF token for all AJAX requests $.ajaxPrefilter(function (options, originalOptions, xhr) { if (!options.crossDomain && pub.getCsrfParam()) { xhr.setRequestHeader('X-CSRF-Token', pub.getCsrfToken()); } }); pub.refreshCsrfToken(); } 然后验证时,多了一个方法: public function validateCsrfToken($token = null) { $method = $this->getMethod(); // only validate CSRF token on non-"safe" methods http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1 if (!$this->enableCsrfValidation || in_array($method, ['GET', 'HEAD', 'OPTIONS'], true)) { return true; } $trueToken = $this->loadCsrfToken(); if ($token !== null) { return $this->validateCsrfTokenInternal($token, $trueToken); } else { return $this->validateCsrfTokenInternal($this->getBodyParam($this->csrfParam), $trueToken) || $this->validateCsrfTokenInternal($this->getCsrfTokenFromHeader(), $trueToken); } } 即:$this->validateCsrfTokenInternal($this->getCsrfTokenFromHeader(), $trueToken);中的$this->getCsrfTokenFromHeader() 所以可以肯定的是,在框架内使用jquery的ajax可以不用带csrf相关参数
weixin_38101820
2019-09-11
打赏
举报
回复
我也遇到了,ajax的headers里面自带x-csrf-token,不知道什么原因造成的,还是说现在的版本变了,自带了
解决laravel 出现ajax
请求
419(unknown status)的问题
这个是因为laravel自
带
CSRF验证的问题 解决方法 方法一:去关掉laravel的csrf验证,但这个人不建议,方法也不写出来了。 方法二:把该接口写到api.php上就好了 方法三: 首先在页面加上 <meta name=csrf-token ...
防止跨站攻击——CSRFToken
非表单:在ajax获取数据时,添加headers:{ 'X-CSRFToken':getCookie('csrf_token') }。原理:在浏览器访问网站A时,网站A设置cookie会增加随机值csrf_token,这个值是随机的。返回给浏览器时,cookie会储存在...
通过Postman进行post
请求
时传递X-XSRF-TOKEN
但是在测试post形式的接口时laravel自
带
了CSRF验证机制.这就很尴尬了... 所以我们的目的在使用Postman通過XSRF的验证,以測試POST的請求。还是以laravel为例子,Laravel会返回到浏览器的GET
请求
时将XSRF-TOKEN写在...
egg.js框架post
请求
出现invalid csrf token安全验证的报错,已解决
"nodejs.ForbiddenError: invalid csrf token" 对此问题官方有说明 点击跳转egg官方安全说明 这里不做过多解释 方法一:在confit.default.js新增以下代码,表示关闭安全验证(不推荐) config.security = { csrf: ...
Django接口
请求
返回报错:CSRF Failed: CSRF token missing or incorrect
django,会对合法的跨域访问做这样的检验,cookies里面存储的’csrftoken’,和post的header里面的字段”X-CSRFToken’作比较,只有两者匹配,才能通过跨域检验。否则会返回这个错误:CSRF Failed: CSRF token ...
其他技术讨论专区
435
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章