PHP Token(令牌)设计(2)_PHP教程
推荐:如何用php过滤危险html代码用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。 #用户发布的html,过滤危险代码 function uh(str) { farr = array( /\s+/, //
GToken.inc.php
方法:
a,granteToken 参数:formName,即动作名称,key是加密/解密 密钥.
返回一个字符串,形式是: 加密(formName:session_id)
b,isToken 参数:token 即granteToken产生的结果,formName,动作名称,fromCheck是否检查来路,如果为真,还要判断token里的session_id是否和当前的session_id一至.
c,dropToken,当成功执行一个动作后,调用这个函数,把这个token记入session里,
<?php
/**
* 原理:请求分配token的时候,想办法分配一个唯一的token, base64( time + rand + action)
* 如果提交,将这个token记录,说明这个token以经使用,可以跟据它来避免重复提交。
*
*/
class GToken {
/**
* 得到当前所有的token
*
* @return array
*/
public static function getTokens(){
tokens = _SESSION[GConfig::SESSION_KEY_TOKEN ];
if (empty(tokens) && !is_array(tokens)) {
tokens = array();
}
return tokens;
}
/**
* 产生一个新的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,实际是向session 的一个数组里加入一个元素,说明这个token以经使用过,以避免数据重复提交。
*
* @param string token
*/
public static function dropToken(token){
tokens = self::getTokens();
tokens[] = token;
GSession::set(GConfig::SESSION_KEY_TOKEN ,tokens);
}
分享:php实现页面GZIP压缩输出饼干是这样压缩的——PHP使用zlib扩展实现页面GZIP压缩输出 GZIP(GNU-ZIP)是一种压缩技术。经过GZIP压缩后页面大小可以变为原来的30%甚至更
- 相关链接:
- 教程说明:
PHP教程-PHP Token(令牌)设计(2)。