你说的是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的了解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)