谁一开始就是大神?

ajax配合csrf安全性的疑问[2.0]

先上代码

ww.png

qq.png

点击页面上的一个按钮会调用ajax访问控制器,我加了个csrf验证判断,如果页面不刷新csrf不会发生变化,那始终验证都是yes。要是使用者用这个固定csrf和不同的id请求这个接口,就会修改其它的记录。我应该怎么防止这种情况呢?

你的担心完全是多余的。
CSRF 是其他站点利用你使用的 A 浏览器登录的 B 网站所保存的 去伪造请求发送给 B 网站。
很显然,其他网站基本不可能知道你的 csrfToken。所以在检测了csrf的请求中只会得到 400。本身就存在于你网站之下的 JS 却可以毫无顾忌的获得这个 token ,这也正是你希望的。
这类似于你给了用户呈现的网页中的背景是一副湛蓝的天空,用户自己可以用 F12 换成大海。但这个用户无法把其他人的背景也换成大海。
除非这个用户是你。
把csrf放到后台吧
1 其实你开启了控制器的enableCsrfValidation=true之后,控制器会帮你验证csrf的,你不用自己验证
2 如果想重新生成,调用一下Yii::$app->request->getCsrfToken(true)就行,记得把新生成这个csrf放到你的页面meta[name=csrf-token]的content里,便于继续调用
3 csrf的起到安全问题其实就是有这个验证(防止跨站攻击(跨站攻击,没这个值)),而没必要再变换这个值,所以没必要变换这个值

赞(0) 打赏
未经允许不得转载:菜鸟之家 » ajax配合csrf安全性的疑问[2.0]

评论 抢沙发

登录

找回密码

注册