如何在动态网站上禁用PHPSESSID?

时间:2011-08-24 14:57:13

标签: php wordpress session-cookies

我检测到我的服务器通过Google网站站长工具使用了PHPSESSID。自从我在两周前检测到PHPSESSID以来,Google Analytics中显示的跳出率开始从大约2%增加到75%。有了它,我的网站上出现了一大堆网址参数。我无法删除它们,我只能决定这些条目是否对我网站的行为产生影响。我可以看到超过160个重定向重复内容。我知道我可以使用以下条目:

 php_value session.use_only_cookies 1 
 php_value session.use_trans_sid 0
<。>在.htaccess中以防止PHPSESSID出现。

然而,这并没有解决问题。由于我有一个动态网站,我无法使用此代码:

$actualurl= 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$correcturl = 'http://www.ragepank.com/articles/26/disable-phpsessid/'; 
if ($correcturl != $actualurl) { 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: " . $correcturl); 
exit(); 
}
在每个页面上

以防止重定向访问者。任何想法都表示赞赏。

P.S。该站点在Apache Server上运行。

2 个答案:

答案 0 :(得分:1)

  

自PHPSESSID以来跳出率从2%到75%

听起来很奇怪。可能是一个可能的脚本小子攻击。由于PHPSESSID,没有人会关闭网页。当您访问该网站时,它是否会提供PHPSESSID。

检查那些执行PHPSESSID的网页的编码

在顶部添加到php文件

<?php

    ini_set('session.use_trans_sid', 0);

    ini_set('session.use_only_cookies', 1);
?>

答案 1 :(得分:0)

您似乎使用条件if ($correcturl != $actualurl)来检测已登录的用户。不要这样做,只需使用您在用户登录后设置的某个会话变量。然后您的地址中不需要PHPSESSID。

用户登录后:$_SESSION['logged_in'] = true;

您的新支票:if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'])