PHP-ThinkPHP中的表单令牌是什么原理

PHP-ThinkPHP中的表单令牌是什么原理,第1张

你说的是token吧

有效防止重复提交,以及跨站伪造请求

Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。

Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。

原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。

然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。

纯手打,望采纳

使用postman调登录接口获取token,入参填写正确,但是!!提示登录名或者密码错误,气气!

查看前端调取,发现入参应该为表单格式

postman内,body格式改成表单而不是json后发起请求,成功!!!

为什么会犯这种低级错误!一个是因为没有接口文档,一个是因为粗心!!呜呜呜!流下了不争气的泪水!

django中写form表单时csrf_token的作用: >

1新建两个文件

indexjsp -- 表单页面

successjsp -- 结果提示页面

2代码分别如下:

3新建TokenServlet,代码如下

4运行indexjsp,输入用户名,点击提交

5正常跳转结果页面

6但当我在这个页面点击刷新的时候,出现如下提示

7点击重试,发现又一次调用了servlet,这就是一个重复提交

8多刷新几次,注意看URL地址,现在仍然是servlet

9以前说重定向可以解决表单重复提交的问题,我们修改Servlet代码如下

10再次测试,发现重定向到了successjsp ,再点击刷新的话也不会出现重复提交了

11那问题解决了么?再看,当我点击浏览器中的返回,然后再点击提交,如此反复,仍然在重复调用Servlet,这也是重复提交

12现在修改Indexjsp

13修改servlet代码

14新建token文件,代码如下

15在浏览器中测试(注,这里如果再使用Eclipse自带浏览器的话,会出现缓存问题,所以使用正常的浏览器火狐或者IE)

16hidden中的token 和session中的token是相同的

17当点击浏览器中的后退按钮,再次进行 *** 作,发现不能重复提交

18这是因为session中的token已经被移除掉了

19而返回后刷新页面,相当于新开一个indexjsp 重新获取token 赋值给session,这时可以正常提交了

以上就是关于PHP-ThinkPHP中的表单令牌是什么原理全部的内容,包括:PHP-ThinkPHP中的表单令牌是什么原理、postman登录接口调试,入参正确,提示登录名或密码错误、csrf_token的了解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9455195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存