我的代码如下,通过使用UA的MD5和种子使会话更安全。IE9用户代理字符串与链接时不同,而直接输入URL
if (!isset($_SESSION['key']))
{
$_SESSION['key']=md5($_SERVER['HTTP_USER_AGENT'] . $UA_SEED);
$session_is_valid = TRUE;
}
else if($_SESSION['key'] != md5($_SERVER['HTTP_USER_AGENT'] . $UA_SEED))
{
$session_is_valid = FALSE;
exit;
}
该代码工作正常,但IE9有自己的议程。当直接访问我的网站,通过在输入网址时,UA被作为
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
如果我访问它通过从其他网站的链接时,UA被作为
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
有任何解决方法对此?其他浏览器不做这样的恶作剧。
P.S.我明白,这种“安全”的附加形式是有限的,但有些事情总比没有好。
你是对的,网站设置为兼容模式。我无法控制此设置。网络上的每台计算机均由IT安装,以便为所有Intranet网站强制执行此设置。 – Grizz 2012-07-13 00:16:57