Сегодня идем дальше и будем скрываться от сервисов, которые очень часто угадывают, какие ссылки были проданы на сайте. Я не бился об стену, рассуждая как можно определить факт продажности. В моем фиде оказалась заметка со ссылкой на "белорусского бомжа", где он и поделился мыслями. Итак, начинаем прятать продажные ссылки.
В общем случае, сама идея от ББ здесь. Моя работа заключалась именно в том, чтобы добавить проверку на наличие допустимых параметров в URL адресе страницы.
В файле sape.php нужно найти строку начала условного блока для удаления параметра сессии:
У меня это строка номер 318. После этого блока пишем следующее.
// Защита от проверок на ссылки$my_keys=array('page','tag','category','module');// Сюда вписать все параметры. $my_uri=$_SERVER['REQUEST_URI'];$my_tmp=explode('?',$my_uri);$my_nu=$my_tmp[0];if(@$my_tmp[1]){$my_tmp2=explode('&',$my_tmp[1]);$my_params=array();foreach($my_tmp2as$my_part){@list($my_key,$my_value)=@explode('=',$my_part);if(in_array($my_key,$my_keys))$my_params[]=$my_key.'='.$my_value;}if($my_params)$my_nu.='?'.implode('&',$my_params);}$this->_request_uri =$my_nu;
Писал наспех мизинцем левой ноги без напряга извилин, поэтому, возможно, покажется корявством. Однако, главные требования спрятать ссылки и ничего не сломать выполнены.
Обратите внимание, что условный блок сапы можно удалить, так как ключа с именем сессии, скорее всего, не будет в Вашем списке ;)
Проверялось здесь и здесь. Далее можно не искать. Но если кто знает другие способы проверки, особенно самизнаетечьи, сообщайте! :)