if (!strpos('URL='.$HTTP_REFERER, $board_config['server_name'])){
print 'Послание спамеру ;)';
} else $template->pparse('body');
После этого будет невозможно запостить сообщение перейдя к странице по ссылке не с Вашего сайта. Злоумышленнику придется реально зайти на форум и "начать новую тему", но в 90% случаев ему будет просто лень.
Замечательно!
Мало того, что неверное использование результатов функции strpos, Вы еще и урезали возможность всем тем, кто скрывает "рефералы" (пример: Outpost Firewall), постить в форум.
За это наше большое человеческое спасибо!
Это значит, что вместо того, что пользоваться, как это рекомендуется в документации, "=== false" или "!== false", Вы надумано делаете слияние строк в функции, чтобы получить вхождение не с нулевого символа.
Вот такую штуку нашел на офи сайте phpBB. Действует по принципу - каждое сообщение нужно подтвердить. Все бы хорошо, только я вот думаю над тем, что стоило бы сделать исключения для зарегестрированных пользователей... а то законопослушные граждане не должны мучиться...
Поставил этот мод - работает... только форма быстрого ответа не прикручена... надо исправлять...
P.S. Кстати, а мне очень интересно, для чего нужно скрывать referal? Это по тому же принципу: чтобы меня не посчитали и вообще я весь такой скрытый или в сокрытии действительно есть что-то полезное?
Кстати, а мне очень интересно, для чего нужно скрывать referal? Это по тому же принципу: чтобы меня не посчитали и вообще я весь такой скрытый или в сокрытии действительно есть что-то полезное?
Потому что он базируется на нововведении phpBB 2.0.12 - визуальное подтверждение регистрации. Т.е. хак будет работать только с форумами начиная от версии 2.0.12
Вы еще и урезали возможность всем тем, кто скрывает "рефералы"
Вся статистика в анус из-за таких, если уж защищать свой комп так хоть меру знать, а реферер то нафига резать, лучше бы себе провода на модеме отрезали больше пользы было бы...
А (для тех кто согласен про провода на модеме) strpos вот так в данном случае лучше использовать...
if (false === strpos($HTTP_SERVER_VARS['HTTP_REFERER'], $board_config['server_name']) )
{
die ('Fuck');
}
else
{
$template->pparse('body');
}
Серый цвет - светлый (светлее чёрного), но он и тёмный (темнее белого), он же промежуточный (между чёрным и белым). Теорию относительности никто не отменял. Истина в целом - понятие виртуально-ситуативное.