5位随机数重复的概率 php_php防止表单重复提交的方法
Token,就是令牌,最大的特点就是随机性,不可预测。
Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。
两者在原理上都是通过session token
来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。
如果应用于“防止表单重复提交”,服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。
php表单加入Token防止重复提交
原理在于生成一个随机字符串放在session里,提交表单后来验证这个字符串,可以做到防止他人自己写form来欺骗提交,重复提交或者双击提交。
简单实现(仅供参考):
<?php
/*
* PHP简单利用token防止表单重复提交* 此处理方法纯粹是为了给初学者参考
*/session_start();function set_token() {$_SESSION['token'] = md5(microtime(true));}function valid_token() {$return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;set_token();return $return;}//如果token为空则生成一个tokenif(!isset($_SESSION['token']) || $_SESSION['token']=='') {set_token();}if(isset($_POST['test'])){if(!valid_token()){echo "token error";}else{echo '成功提交,Value:'.$_POST['test'];}}?><form method="post" action=""><input type="hidden" name="token" value="<?php echo $_SESSION['token']?>"><input type="text" name="test" value="Default"><input type="submit" value="提交" /></form>
以上就是php防止表单重复提交的方法的详细内容,希望对你有所帮助。
5位随机数重复的概率 php_php防止表单重复提交的方法相关推荐
- JavaWeb -- Session实例 -- 自动登录 和 防止表单重复提交(令牌产生器) MD5码
1. 自动登录 http://blog.csdn.net/xj626852095/article/details/16825659 2. 防止表单重复提交 表单Servlet //负责产生表单 pub ...
- JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体
1. struts 工作流程图 超链接 2. 入门案例 struts入门案例:1.写一个注册页面,把请求交给 struts处理<form action="${pageContext.r ...
- 使用Struts2防止表单重复提交
用户重复提交表单在某些场合将会造成非常严重的后果.例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次.因此,重复提 ...
- JavaWeb学习总结(十三)——使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- JAVA_OA(十四)番外:JAVAWEB防止表单重复提交的方法整合(包括集群部署)
因为自己要用,所以查找了网络上javaweb项目防止表单重复提交的方法,有些部分不太好找,所以整合后贴出来,首先是孤傲苍狼的一部分博客文章,集群部署的解决方案在后面(注意大红字) 原文出处:孤傲苍狼的 ...
- java怎么防止表单重复提交_如何防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- 由防止表单重复提交引发的一系列问题--servletRequest的复制、body值的获取
@Time:2019年1月4日 16:19:19 @Author:QGuo 背景:最开始打算写个防止表单重复提交的拦截器:网上见到一种不错的方式,比较合适前后端分离,校验在后台实现: 我在此基础上,将 ...
- 使用Session防止表单重复提交
JavaWeb学习总结(十三)--使用Session防止表单重复提交 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提 ...
- 防止表单重复提交的简单有效的策略
点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求.用户提交表单时可能因为网速的原因,或者网页被恶意刷 ...
最新文章
- C#-发送接收消息MQ
- Feedback about (Blockchain OR ML) AND (logistics)
- sbt1.4.4配置国内镜像源实操教程(无痛入门)
- PyCairo 中的基本绘图
- Go 语言能取代 Java,成为下一个 10 年的王者吗?
- 音视频技术开发周刊 | 224
- C#黔驴技巧之去重(Distinct)
- RestFul的学习 2021-04-25
- Leetcode每日一题:13.roman-to-integer(罗马数字转整数)
- 我是如何从零开始 Web 前端自学之路的?
- anaconda新建环境在PyCharm执行import ssl失败
- json取数据怎么取_灯罩怎么取下来 各种吸顶灯的灯罩拆卸方法
- 开课吧:微服务与DDD解析
- 深度学习推荐模型-DIN
- Java TCP小结
- 阿里云短信验证码+Java开发
- java excel 创建控件_Java 添加、删除Excel表单控件
- 2020牛客暑期多校训练营(第九场)	Groundhog and 2-Power Representation
- 微信扫码下载APP(带有蒙层)
- mybatis中如何防止sql注入和传参