为了账号安全,请及时绑定邮箱和手机立即绑定

PHP-表单令牌防止重复提交原理?

PHP-表单令牌防止重复提交原理?

慕村225694 2019-04-03 11:07:22
PHP-表单令牌防止重复提交原理
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

最常用的方法就是利用token。即:
1、在生成页面的时候生成一个token(随机字符串),并把它同时写入表单的某个hidden中,和服务端的session中。
2、客户端提交表单到服务器时,比对表单中的token与session中的token是否一致。若不一致则认为是无效的请求。
3、不管第2步的校验是否通过,token只要使用一次后就立即作废(即:从session中销毁)。同时token也可以关联时间信息,超时后也自动作废。
这样,即便客户端重复提交,也只有第一次的请求能够成功。

查看完整回答
反对 回复 2019-04-11
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

可以在当前页面里设置一个变量,通过这个变量来确定是否已经提交了,如果提交过了就不再提交。

示例代码:

123456789101112131415<script language="javascript"var checkSubmitFlg = false function checkSubmit(){ if(checkSubmitFlg ==true){   return false//当表单被提交过一次后checkSubmitFlg将变为true,根据判断将无法进行提交。 checkSubmitFlg ==truereturn true< /script >  < form name="form1" method="post" onsubmit="return checkSubmit();"………..< /form>



查看完整回答
反对 回复 2019-04-11
  • 3 回答
  • 0 关注
  • 729 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信