dedecms的cookie存储分析
2012-01-12 23:26 来源:www.chinab4c.com 作者:dedecms专家
dedecms的cookie设置特别有意思,我们通常都是直接重写cookie。最多也就是用key/val的键/值对的形式来做。但是我们看dede,不但重写了cookie的写如,读取,删除,而且还对cookie做了必要的验证。
首先我们看dedecms的cookie写入。
function PutCookie($key, $value, $kptime=0, $pa="/")
{
global $cfg_cookie_encode,$cfg_domain_cookie;
setcookie($key, $value, time()+$kptime, $pa,$cfg_domain_cookie);
setcookie($key.'__ckMd5', substr(md5($cfg_cookie_encode.$value),0,16), time()+$kptime, $pa,$cfg_domain_cookie);
}
有一个$key是用来记录$key的值。一个是$key和一段字符组成的串,通过md5之后截取部分,作为验证标记,之所以要做这个验证,是为了方式cookie被伪造而泄露数据。他是通过该cookie要记录的值和一个密钥来组成的。
然后看dedecms的cookie读出。
function GetCookie($key)
{
global $cfg_cookie_encode;
if( !isset($_COOKIE[$key]) || !isset($_COOKIE[$key.'__ckMd5']) )
{
return '';
}
else
{
if($_COOKIE[$key.'__ckMd5']!=substr(md5($cfg_cookie_encode.$_COOKIE[$key]),0,16))
{
return '';
}
else
{
return $_COOKIE[$key];
}
}
}
首先他要判断该值是否存在,然后要验证数据的合法性。同样用该值和密钥做计算,计算出来的数据和$key_"ckMd5"做比较。如果趁工,才能返回该cookie里面的值,否则就为空,读dedecms的cookie为非法操作。
来源:http://www.chinab4c.com
最近更新
常用插件
- ecshop打印快递发货单
ecshop打印快递发货单,这个问题是很常见的问题。在发货完成之后,有些...
- ecshop 匿名下单自动注册会
ecshop 匿名下单自动注册会员...
- ecshop二次开发首页显示购
ecshop二次开发首页显示购买记录插件,用图文的方式,来处理在首页显示...
- ecshop二次开发直接优惠现
ecshop二次开发促销售功能插件,主要是扩展了ecshop促销功能,增加了更...
- ecsho成本利润统计分析插件
最近在二次开发ecshop过程中,很多朋友要求一款分析 ecshop成本和利润插...