国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP防止用戶重復(fù)提交表單

zengdongbao / 2819人閱讀

摘要:我們提交表單的時(shí)候,不能忽視的一個(gè)限制是防止用戶重復(fù)提交表單,因?yàn)橛锌赡苡脩暨B續(xù)點(diǎn)擊了提交按鈕或者是攻擊者惡意提交數(shù)據(jù),那么我們?cè)谔峤粩?shù)據(jù)后的處理如修改或添加數(shù)據(jù)到數(shù)據(jù)庫時(shí)就會(huì)惹上麻煩。我們現(xiàn)在來了解下簡單的利用來防止表單重復(fù)提交的方法。

我們提交表單的時(shí)候,不能忽視的一個(gè)限制是防止用戶重復(fù)提交表單,因?yàn)橛锌赡苡脩暨B續(xù)點(diǎn)擊了提交按鈕或者是攻擊者惡意提交數(shù)據(jù),那么我們?cè)谔峤粩?shù)據(jù)后的處理如修改或添加數(shù)據(jù)到數(shù)據(jù)庫時(shí)就會(huì)惹上麻煩。

那么如何規(guī)避這中重復(fù)提交表單的現(xiàn)象出現(xiàn)呢?我們可以從很多方面入手:

首先從前端做限制。前端JavaScript在按鈕被點(diǎn)擊一次后禁用,即disabled,這個(gè)方法簡單的防止了多次點(diǎn)擊提交按鈕,但是缺點(diǎn)是如果用戶禁用了javascript腳本則失效。

第二,我們可以在提交后做redirect頁面重定向,即提交后跳轉(zhuǎn)到新的頁面,主要避免F5重復(fù)提交,但是也有不足之處。

第三,就是數(shù)據(jù)庫做唯一索引約束。

第四,就是做session令牌驗(yàn)證。

我們現(xiàn)在來了解下簡單的利用session token來防止表單重復(fù)提交的方法。

我們?cè)诒韱沃屑右粋€(gè)input隱藏域,即type="hidden",其value值用來保存token值,當(dāng)頁面刷新的時(shí)候這個(gè)token值會(huì)變化,提交后判斷token值是否正確,如果前臺(tái)提交的token與后臺(tái)不匹配,則認(rèn)為是重復(fù)提交。

< ?php
/ PHP簡單利用token防止表單重復(fù)提交 */
session_start();
header("Content-Type: text/html;charset=utf-8");
function set_token() {
$_SESSION["token"] = md5(microtime(true));
}
function valid_token() {
$return = $_REQUEST["token"] === $_SESSION["token"] ? true: false;
set_token();
return $return;
}
//如果token為空則生成一個(gè)token
if(!isset($_SESSION["token"]) || $_SESSION["token"]=="") {
set_token();
}
if(isset($_POST["web"])){
if(!valid_token()){
echo "token error,請(qǐng)不要重復(fù)提交!";
}else{
echo "成功提交,Value:".$_POST["web"];
}
}else{
?>
}
?>

以上是一個(gè)簡單的防止重復(fù)提交表單的例子。

那么實(shí)際項(xiàng)目開發(fā)中,會(huì)對(duì)表單token做更復(fù)雜的處理,即我們說的令牌驗(yàn)證。可能要做的處理 有:驗(yàn)證來源域,即來路,是否為外部提交;匹配要執(zhí)行的動(dòng)作,是添加、修改or刪除;其次最重要的是構(gòu)建token,token可以采用可逆的加密算法, 盡可能復(fù)雜,因?yàn)槊魑倪€是不安全的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22736.html

相關(guān)文章

  • php表單加入Token防止重復(fù)提交

    摘要:下次客戶端提交請(qǐng)求時(shí),會(huì)隨著表單一起提交到服務(wù)器端。簡單利用防止表單重復(fù)提交此處理方法純粹是為了給初學(xué)者參考如果為空則生成一個(gè)成功提交,提交 Token淺談Token,就是令牌,最大的特點(diǎn)就是隨機(jī)性,不可預(yù)測(cè)。一般黑客或軟件無法猜測(cè)出來。那么,Token有什么作用?又是什么原理呢? Token一般用在兩個(gè)地方——防止表單重復(fù)提交、anti csrf攻擊(跨站點(diǎn)請(qǐng)求偽造)。兩者在原理上都...

    william 評(píng)論0 收藏0
  • PHP 防止表單重復(fù)提交

    摘要:框架很多框架都有防止重復(fù)提交的功能,大家應(yīng)該都有了解,這里不再贅述。后端也就是使用進(jìn)行驗(yàn)證,當(dāng)然不局限以下幾種用戶提交表單到后端,在中做標(biāo)記,指定時(shí)間內(nèi)重復(fù)提交無效。 導(dǎo)語 說來慚愧,前幾天做項(xiàng)目的時(shí)候,出現(xiàn)個(gè)低級(jí)錯(cuò)誤。在公司后臺(tái)做表單提交,一是自己員工用,二是 html 自己來寫的,沒有驗(yàn)證表單重復(fù)提交,結(jié)果出錯(cuò)了。寫出來記錄下以便提醒自己,時(shí)刻不能疏忽。 解決方法 其實(shí)方法有很多種...

    wushuiyong 評(píng)論0 收藏0
  • php表單提交后再后退 內(nèi)容則默認(rèn)清空的解決方法

    摘要:指示對(duì)于單個(gè)用戶的整個(gè)或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對(duì)于其他用戶的請(qǐng)求無效。指示客戶機(jī)可以接收生存期不大于指定時(shí)間以秒為單位的響應(yīng)。指示客戶機(jī)可以接收超出超時(shí)期間的響應(yīng)消息。 轉(zhuǎn)載原文地址: http://www.jquerycn.cn/a_14422 在session_start()之后,字符輸出之前加上header(Cac...

    Joyven 評(píng)論0 收藏0
  • php表單提交后再后退 內(nèi)容則默認(rèn)清空的解決方法

    摘要:指示對(duì)于單個(gè)用戶的整個(gè)或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對(duì)于其他用戶的請(qǐng)求無效。指示客戶機(jī)可以接收生存期不大于指定時(shí)間以秒為單位的響應(yīng)。指示客戶機(jī)可以接收超出超時(shí)期間的響應(yīng)消息。 轉(zhuǎn)載原文地址: http://www.jquerycn.cn/a_14422 在session_start()之后,字符輸出之前加上header(Cac...

    hightopo 評(píng)論0 收藏0
  • 2018 PHP面試真題(包括詳細(xì)解析)

    摘要:以下題目和解析分別來源于我的新書程序員面試筆試寶典程序員面試筆試真題解析。類通過一個(gè)簡單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通信。真題獲得實(shí)例化對(duì)象所屬類名字的函數(shù)是。 以下題目和解析分別來源于我的新書《PHP程序員面試筆試寶典》、《PHP程序員面試筆試真題解析》。 1、PHP常考基礎(chǔ) 1、PHP與ASP、JSP有什么區(qū)別?ASP全名Active Server Page...

    pubdreamcc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<