WP-NoExternalLinks добавляем проверку http referer

WP-NoExternalLinks1
На днях в логах обнаружил интересную вещь, какие-то хитрожопые, юзали блог для шастания по чужим сайтам,т.к. на блоге для скрытия внешних ссылок используя плагин WP-NoExternalLinks, то на любой сайт можно зайти используя ссылку с блога
http://i-notes.org/go/http://google.ru
одно дело если это реально переход с блога, а другое, если кто-то юзал это в своих целях.
Чтож, как выяснилось у данного плагина нет возможности проверки HTTP_REFERER, ставить новый плагин не хотелось, т.к. блогу не один год и ломать все из-за этого влом, пришлось добавить проверку HTTP_REFERER самому )))
Открываем wp-noexternallinks/wp-noexternallinks-parser.php, ищем там функцию redirect2($url)
далее кусок кода в ней


  $this->init_lang();
  if(!$og1muezaerai_rewrite->using_permalinks())
    $url=urldecode($url);

и после добавляем свой код


$tmp=strpos($_SERVER['HTTP_REFERER'],'notes');
if ($tmp==FALSE) {
$url=urldecode('http://i-notes.org/404');}

т.е. проверяем наличие строки notes в HTTP_REFERER и если ее нет, то кидаем на 404 ошибку.
При попытке открытия ссылки без присутствия блога в качестве реферера, кинет 404 страницу.

Оцените статью
( Пока оценок нет )

Добавить комментарий