防止php重复提交表单更安全的方法
来源:互联网 发布:修改jenkins的端口 编辑:程序博客网 时间:2024/04/20 06:31
- Token.php
-
- <?php
-
- /*
- * Created on 2013-3-25
- *
- * To change the template for this generated file go to
- * Window - Preferences - PHPeclipse - PHP - Code Templates
- */
- function getToken($len = 32, $md5 = true) {
- # Seed random number generator
- # Only needed for PHP versions prior to 4.2
- mt_srand((double) microtime() * 1000000);
- # Array of characters, adjust as desired
- $chars = array (
- 'Q',
- '@',
- '8',
- 'y',
- '%',
- '^',
- '5',
- 'Z',
- '(',
- 'G',
- '_',
- 'O',
- '`',
- 'S',
- '-',
- 'N',
- '<',
- 'D',
- '{',
- '}',
- '[',
- ']',
- 'h',
- ';',
- 'W',
- '.',
- '/',
- '|',
- ':',
- '1',
- 'E',
- 'L',
- '4',
- '&',
- '6',
- '7',
- '#',
- '9',
- 'a',
- 'A',
- 'b',
- 'B',
- '~',
- 'C',
- 'd',
- '>',
- 'e',
- '2',
- 'f',
- 'P',
- 'g',
- ')',
- '?',
- 'H',
- 'i',
- 'X',
- 'U',
- 'J',
- 'k',
- 'r',
- 'l',
- '3',
- 't',
- 'M',
- 'n',
- '=',
- 'o',
- '+',
- 'p',
- 'F',
- 'q',
- '!',
- 'K',
- 'R',
- 's',
- 'c',
- 'm',
- 'T',
- 'v',
- 'j',
- 'u',
- 'V',
- 'w',
- ',',
- 'x',
- 'I',
- '$',
- 'Y',
- 'z',
- '*'
- );
- # Array indice friendly number of chars;
- $numChars = count($chars) - 1;
- $token = '';
- # Create random token at the specified length
- for ($i = 0; $i < $len; $i++)
- $token .= $chars[mt_rand(0, $numChars)];
- # Should token be run through md5?
- if ($md5) {
- # Number of 32 char chunks
- $chunks = ceil(strlen($token) / 32);
- $md5token = '';
- # Run each chunk through md5
- for ($i = 1; $i <= $chunks; $i++)
- $md5token .= md5(substr($token, $i * 32 - 32, 32));
- # Trim the token
- $token = substr($md5token, 0, $len);
- }
- return $token;
- }
- ?>
- form.php
-
- <?php
- include_once("token.php");
- $token = getToken();
- session_start();
- $_SESSION['token'] = $token;
- ?>
- <form action="action.php" method="post"
- <input type="hidden" name="token" value="<?=$token?>" />
- <!-- 其他input submit之类的 -->
- </form>
- action.php
-
- <?php
- session_start();
- if($_POST['token'] == $_SESSION['token']){
- unset($_SESSION['token']);
- echo "这是一个正常的提交请求";
- }else{
- echo "这是一个非法的提交请求";
- }
- ?>
0 0
- 防止php重复提交表单更安全的方法
- 防止php重复提交表单更安全的方法
- PHP防止表单重复提交的几种常用方法
- php表单加入Token防止重复提交的方法分析
- 防止php重复提交表单的简单方法
- PHP防止用户重复提交表单的方法
- php防止表单的重复提交
- PHP防止重复提交表单的例子
- 防止表单重复提交的巧妙方法
- 防止表单重复提交的实现方法!
- ThinkPHP 防止表单重复提交的方法
- 防止表单重复提交的方法
- Thinkphp防止表单重复提交的方法
- php 防止表单重复提交
- php防止重复提交表单
- php 防止表单重复提交
- php防止表单重复提交
- PHP防止表单重复提交
- acm杭电HDU5245 Joyful 概率问题 期望值(2015上海邀请赛)
- hihocoder 完全背包
- 如何保证 docker daemon重启,但容器不重启
- 阿里云服务器部署tomcat、mysql以及nginx的步骤
- 【iOS_Development】delegate的使用优化
- 防止php重复提交表单更安全的方法
- HDU
- 10种纯css3制作的loading效果和源码分享
- 蓝桥杯:马虎的算式
- JVM加载class文件的原理机制是什么?类加载器的工作原理
- 视频电商网站
- 第三章 规划
- PHP 下载文件(中文不乱码)
- NOI2015 Day1