PHP Token(令牌)設(shè)計(jì)(2)_PHP教程
推薦:如何用php過(guò)濾危險(xiǎn)html代碼用PHP過(guò)濾html里可能被利用來(lái)引入外部危險(xiǎn)內(nèi)容的代碼。有些時(shí)候,需要讓用戶(hù)提交html內(nèi)容,以便豐富用戶(hù)發(fā)布的信息,當(dāng)然,有些可能造成顯示頁(yè)面布局混亂的代碼也在過(guò)濾范圍內(nèi)。 #用戶(hù)發(fā)布的html,過(guò)濾危險(xiǎn)代碼 function uh(str) { farr = array( /\s+/, //
GToken.inc.php
方法:
a,granteToken 參數(shù):formName,即動(dòng)作名稱(chēng),key是加密/解密 密鑰.
返回一個(gè)字符串,形式是: 加密(formName:session_id)
b,isToken 參數(shù):token 即granteToken產(chǎn)生的結(jié)果,formName,動(dòng)作名稱(chēng),fromCheck是否檢查來(lái)路,如果為真,還要判斷token里的session_id是否和當(dāng)前的session_id一至.
c,dropToken,當(dāng)成功執(zhí)行一個(gè)動(dòng)作后,調(diào)用這個(gè)函數(shù),把這個(gè)token記入session里,
<?php
/**
* 原理:請(qǐng)求分配token的時(shí)候,想辦法分配一個(gè)唯一的token, base64( time + rand + action)
* 如果提交,將這個(gè)token記錄,說(shuō)明這個(gè)token以經(jīng)使用,可以跟據(jù)它來(lái)避免重復(fù)提交。
*
*/
class GToken {
/**
* 得到當(dāng)前所有的token
*
* @return array
*/
public static function getTokens(){
tokens = _SESSION[GConfig::SESSION_KEY_TOKEN ];
if (empty(tokens) && !is_array(tokens)) {
tokens = array();
}
return tokens;
}
/**
* 產(chǎn)生一個(gè)新的Token
*
* @param string formName
* @param 加密密鑰 key
* @return string
*/
public static function granteToken(formName,key = GConfig::ENCRYPT_KEY ){
token = GEncrypt::encrypt(formName.":".session_id(),key);
return token;
}
/**
* 刪除token,實(shí)際是向session 的一個(gè)數(shù)組里加入一個(gè)元素,說(shuō)明這個(gè)token以經(jīng)使用過(guò),以避免數(shù)據(jù)重復(fù)提交。
*
* @param string token
*/
public static function dropToken(token){
tokens = self::getTokens();
tokens[] = token;
GSession::set(GConfig::SESSION_KEY_TOKEN ,tokens);
}
分享:php實(shí)現(xiàn)頁(yè)面GZIP壓縮輸出餅干是這樣壓縮的——PHP使用zlib擴(kuò)展實(shí)現(xiàn)頁(yè)面GZIP壓縮輸出 GZIP(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過(guò)GZIP壓縮后頁(yè)面大小可以變?yōu)樵瓉?lái)的30%甚至更
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶(hù)端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- php環(huán)境搭建:PHPnow綠色PHP環(huán)境包
- PHP使用PDO連接Access的方法
- php.ini中文版說(shuō)明
- PHP的print函數(shù)
- 網(wǎng)站模板:web上存漏洞及原理分析、防范方法
- 給wordpress 增加干擾碼防采集
- 淺談PHP中的一些常識(shí):類(lèi)篇
- PHP實(shí)用:用PHP來(lái)實(shí)現(xiàn)圖片的簡(jiǎn)單上傳
- mongo Table類(lèi)文件 獲取MongoCursor(游標(biāo))的實(shí)現(xiàn)方法分析
- 小結(jié):PHP動(dòng)態(tài)網(wǎng)頁(yè)程序兩個(gè)有用的小技巧
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-PHP Token(令牌)設(shè)計(jì)(2)
。