Проверка формы комментария PHP для защиты от спама - PullRequest
1 голос
/ 21 февраля 2012

Я создаю форму комментария для веб-сайта. В конце концов, это будет всплывающая форма jquery, использующая ajax. Я пытаюсь собрать php прямо сейчас и хочу убедиться, что я покрываю все базы для защиты от спама.

Есть четыре поля: адрес электронной почты, имя, URL и комментарий. Это то, что у меня есть для php до сих пор:

$email = $_POST['email'];

if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ 
    print "E-mail is correct";

    $to      = 'asdfdsafasdfsda@gmail.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com';

    mail($to, $subject, $message, $headers);

} else {
    print "E-mail is not correct";
}

Просто проверяю, чтобы убедиться, что пользователь использует правильный адрес электронной почты. Я не пользуюсь базой данных, поэтому не слишком беспокоюсь о внедрении SQL или других проблемах, связанных с базой данных. Я просто хочу, чтобы форма была защищена от спам-ботов.

Какие еще элементы я должен включить в свой php для защиты от спама?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Как правило, вы не можете решить, является ли сообщение спамом или желаемым текстом, поэтому синтаксические проверки, подобные той, что вы сделали для электронной почты, не будут работать.

С другой стороны, существуют некоторые решения, которые пытаются найти определенные свойства, которые могут идентифицировать сообщение как спам. Вы можете, например, заглянуть в http://wordpress.org/extend/plugins/akismet

Распространенным решением является использование капчи. это картинка, содержащая какой-то запутанный текст, который может прочитать только человек. Google предлагает простую систему кодирования, если вы хотите попробовать: http://www.google.com/recaptcha

1 голос
/ 11 апреля 2012

Использовать антиспамовую базу данных. Botscout имеет действительно хороший, а также Spambusted.У них есть примеры кода и плагины для всех основных скриптов с открытым исходным кодом.

Что касается необходимой вам информации, одной важной информацией будет IP-адрес пользователя.

Токен CSRF - хорошая идея, и он помогает убедиться, что комнеты исходят только с вашего сайта (таким образом, не позволяя кому-либо оставлять комментарии из сценария за пределами вашего сайта), но он не особенно эффективенспамер, который знает, что делает.

Капча также является хорошим решением (а Google Recaptcha очень легко включить), но это может быть неудобно для ваших конечных пользователей.

Еслиединственная функциональность, которую вы хотите иметь - это комментарии, чем вы, возможно, захотите попробовать уже установленное решение, например Disqus

0 голосов
/ 21 февраля 2012

Captcha Ads
Я не использовал это, но читал об этом. Концепция привлекательна. Это легче читать для пользователя, и вы зарабатываете деньги в процессе.

PS: пожалуйста, напишите, что вы в итоге реализовали, кроме recaptcha.

...