久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

PHP中使用Session令牌防止Ajax表單重復提交

瀏覽:2日期:2022-09-13 09:50:56

防止表單重復提交主要有兩種方式:

1) 通過重定向(非Ajax表單提交)

2) 通過Session Token(Session令牌)

當客戶端請求頁面時,服務器會生成一個隨機數,并且將該隨機數放置到session當中,然后將該隨機數發向客戶端;如果客戶第一次提交,那么會將該隨機數發往服務器端,服務器會接收到該隨機數并且與session中所保存的隨機數進行比較,這時兩者的值是相同的,服務器認為是第一次提交,并且將更新服務器端的這個隨機數值;如果此時再次重復提交,那么客戶端發向服務器端的隨機數還是之前的那個,而服務器端的隨機數則已經發生了變化,兩者不同,服務器就認為這是重復提交。

生成一個隨機數并使用md5進行加密:

$_token = md5(microtime()+rand(1,10000));$_SESSION[’_token’] = $_token;

將該數值發送到客戶端,作為表單隱藏字段提交:

<input type='hidden' value='<?php echo $_token;?>' name='_token'/>

然后在提交的時候將提交過來的數據和服務器Session中的數據進行對比,如果為空或不相等,則都認為是非法操作:

if(!isset($_POST(’_token’))){ echo json_encode(array(’status’=>’failed’,’msg’=>’非法操作!’)); exit();}if(isset($_POST[’_token’]) && $_POST[’_token’]!=$_SESSION[’_token’]){ echo json_encode(array(’status’=>’failed’,’msg’=>’表單只能提交一次,不能重復提交!’)); exit();}

標簽: PHP
相關文章:
主站蜘蛛池模板: 清河县| 绥德县| 额尔古纳市| 天气| 日土县| 锡林郭勒盟| 邹城市| 霞浦县| 集安市| 威信县| 恩平市| 广水市| 公主岭市| 中西区| 岳阳县| 皮山县| 抚远县| 淅川县| 红原县| 疏勒县| 通化市| 凤阳县| 灌南县| 保靖县| 宜宾市| 定结县| 禄丰县| 秦安县| 灵武市| 盐津县| 邻水| 峨眉山市| 桂林市| 南城县| 定襄县| 贵州省| 蒙自县| 新巴尔虎右旗| 根河市| 迭部县| 运城市|