Как отключить PHPSESSID на динамических сайтах? - PullRequest
0 голосов
/ 24 августа 2011

Я обнаружил, что мой сервер использует PHPSESSID через Инструменты Google для веб-мастеров. Показатель отказов, как показано в Google Analytics, начал увеличиваться с 2 до 75%, так как я обнаружил PHPSESSID две недели назад. При этом на моем сайте появилась целая куча параметров URL. Я не могу удалить их, и я могу только решить, влияют ли записи на поведение моего сайта или нет. Я вижу более 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.

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Показатель отказов от 2 до 75% с момента PHPSESSID

звучит странно. может быть сценарий возможной атаки детишки. никто не собирается закрывать веб-страницу из-за PHPSESSID. это приходит с PHPSESSID, когда вы посещаете веб-сайт.

проверьте кодирование на тех веб-страницах, которые также выполняют PHPSESSID

добавить в php файл вверху

<?php

    ini_set('session.use_trans_sid', 0);

    ini_set('session.use_only_cookies', 1);
?>
0 голосов
/ 24 августа 2011

Вы, похоже, используете условие if ($correcturl != $actualurl) для обнаружения вошедших в систему пользователей.Не делайте этого, просто используйте некоторую переменную сеанса, которую вы установили после входа пользователя в систему. Тогда вам не понадобится PHPSESSID в ваших адресах.

После входа пользователя в систему: $_SESSION['logged_in'] = true;

Ваш новый чек: if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'])

...