2009-09-08 2 views
1

Я реализую контактную форму для веб-сайта, и я бы хотел избежать использования конвертации, потому что я считаю, что это отрицательно влияет на пользовательский интерфейс.PHP Определите, сколько URLS в строке

Вместо этого я решил судить о количестве URL-адресов, отправленных с сообщением.

Я получаю сообщение в виде строки из представления $ _POST. Я знаю, что встроенные функции PHP, такие как stristr(), могут дать мне подтверждение того, что подстрока существует в сообщении, но то, что мне нужно, - это счет.

Также, с точки зрения обнаружения спама, было бы совпадение с чем-то вроде «</a >« Соответствующим?

Cheers.

ответ

4

substr_count ($ текст, «HTTP») http://www.php.net/manual/en/function.substr-count.php

Обратите внимание, что не является достаточным, но ни один не позволяет пользователям вводить отфильтрованные данные в вашей форме полей, визуализируется как HTML.

я не должен быть в состоянии поставить JavaScript там или из-за Cross Site Scripting http://www.owasp.org/index.php/Top_10_2007-Cross_Site_Scripting

Я бы рекомендовал использовать http://htmlpurifier.org/, чтобы удалить вредоносный код.

Наконец, для фильтрации спама Я рекомендую http://akismet.com/

удачи.

+0

HTML, JavaScript и обработка инъекции SQL является штраф. Я даже ничего не показываю на странице, я просто хочу автоматически запретить как можно больше спама. Все всегда предполагают, что, поскольку я специально не упоминал об обработке HTML-инъекций, я должен был пренебречь этим, хотя это не имеет никакого отношения к моему первоначальному вопросу. – Evernoob

+1

Извините, но все равно стоит рисковать раздражать вас, если есть вероятность, что вам это не удалось. Посмотрите на акисмет, который обрабатывает спам намного лучше, чем подсчет URL. Это то, что используется практически в каждом Wordpress. – 2009-09-08 16:30:00

+0

Также, если вы его пропустили, я сразу ответил на ваш вопрос первой частью моего сообщения. Позволить вам игнорировать остальные. – 2009-09-08 16:30:49

0

Если это контактная форма, нет необходимости принимать html. просто закодировать весь контент и ограничить количество сообщений с одного и того же ip или ограничить время между сообщениями.

да вы могли бы ограничить количество адресов, но я не думаю, что это является эффективным

+0

Это будет эффективно для уменьшения спама, который я уже получаю через контактную форму, на которые все заражены URL-адресами. Большинство ботов, хотя, очевидно, одинаково способны переключать IP-адреса, но время между идеями сообщений хорошо. – Evernoob

Смежные вопросы