加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 处理失败的nonce验证的最佳方法是什么?

发布时间:2020-12-13 17:06:39 所属栏目:PHP教程 来源:网络整理
导读:我对nonce有一个模糊的理解,但有点混乱. 当nonce验证失败时,正确的响应是什么? 在什么情况下nonce验证失败?真正的用户有什么风险? 解决方法 带有表单的nonce的目标通常是双重的:确保数据仅提交一次,并确保用户实际进行提交.第二点帮助防止跨站点请求伪造
我对nonce有一个模糊的理解,但有点混乱.

当nonce验证失败时,正确的响应是什么?

在什么情况下nonce验证失败?真正的用户有什么风险?

解决方法

带有表单的nonce的目标通常是双重的:确保数据仅提交一次,并确保用户实际进行提交.第二点帮助防止跨站点请求伪造: http://en.wikipedia.org/wiki/Cross-site_request_forgery

处理它们取决于上下文.如果用户填写表单并且nonce失败,请刷新页面(预填充数据),说一些良性的话,如“哎呀有问题,请检查输入并再次提交”.有效用户可以点击提交,攻击将被阻止,或者用户至少知道发生了什么.

验证可能由于一些原因而失败.如果您启用了某种形式的浏览器缓存,则用户访问一个表单(使用给定的nonce),然后导航到另一个表单(使用它自己的nonce)并通过后退按钮返回第一个表单,nonce可能会失败.通过允许浏览器缓存发生,他们没有刷新页面,并且您的服务器可能只在会话中为它们存储一个有效的nonce,因此它们不匹配.一个有效的用例,一个失败的nonce(不是我失去了睡眠,只是确保重新填充表单).

总的来说,我的推荐是:告诉用户再次提交,巧妙地暗示他们应该检查他们的输入,以便再次提交.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读