Нужна помощь в защите от спамеров.

Главные вкладки

Аватар пользователя Gorecmagic Gorecmagic 22 ноября 2015 в 19:37

Частенько ко мне начали захаживать спамеры. Основная защита от автоматического спама стоит, спамят в ручную, интервал между сообщениями примерно 4-5 мин. минут. Вот ссылка на спам комментарий, специально оставил одну и немножко над ней поглумился: http://gorecmagic.ru/comment/121#comment-121 Вопрос такой: когда заполняют форму, как я понял вставляют ссылку на сайт, это мое предположение. В итоге я не могу эту ссылку удалить, не знаю где она прописана, в обычной редакции комментария ничего не получается, в поле имя написано просто имя , но когда кликаеш на автора комментария при просмотре переходишь по вставленной им ссылке. Как убрать ссылку с поля имя?

ВложениеРазмер
Иконка изображения 47.jpg85.85 КБ
Иконка изображения 48.jpg88.93 КБ

Комментарии

Аватар пользователя tlito tlito 22 ноября 2015 в 19:52

у вас форма содержит поле Домашняя страница. посмотрите в хтмл
хтмл

чтобы избавиться от этого поля недостаточно скрыть его в CSS, как это у вас сделано, и не видно.
вам надо использовать хук формы комментариев, чтобы в этом хуке программно запретить это поле.
тут несколько решений https://www.drupal.org/node/147502

например так в хуке form_alter:

<?php/* disable homepage field for all users in comment form*/
function hook_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'comment_form') 
{
    unset($form['homepage']);
}
} ?>
Аватар пользователя Gorecmagic Gorecmagic 22 ноября 2015 в 21:21

Graytone, "Запрет для анонимных пользователей" - это не решение задачи для меня, я знаю о такой функции, но она мне не подходит. В любом случае спасибо, ответ по теме. Smile

Аватар пользователя bumble bumble 22 ноября 2015 в 22:02

Более правильно запрещать доступ к элементу, т.к. "unset" может вызвать ошибки при валидации и сабмите. Пропишите в template.php вашей темы:

<?php
/**
 * Implements hook_form_alter().
 */
function ИМЯ_ТЕМЫ_form_comment_form_alter(&$form, &$form_state) {
    
$form['author']['homepage']['#access'] = FALSE;
}
?>

ИМЯ_ТЕМЫ замените на машинное имя темы.

«а как они заполняют это поле, если его не видно...?»
Его не видно только Вам. Боты не тратятся на просмотр страниц в браузерах.

Аватар пользователя Gorecmagic Gorecmagic 23 ноября 2015 в 0:11

bumble, получается что это боты? А как же пауза примерно в 4 минуты между сериями сообщений? Уффф.., второй год "копаю" Друпал, и каждый день как в первый раз... Sad

Аватар пользователя bumble bumble 23 ноября 2015 в 0:10

А что пауза?
На самом деле, и для человека не проблема включить отображение поля на странице, если оно скрыто в CSS. Но не думаю что кто то заморачивается.

Аватар пользователя Gorecmagic Gorecmagic 23 ноября 2015 в 0:15

За Гуглю эту тему, для меня вы говорите загадками, получается бот заходит на страницу смотрит код, отключает "displlay: none;" и заполняет поле?

Аватар пользователя Gorecmagic Gorecmagic 29 ноября 2015 в 4:49

bumble, сейчас вставил ваш код, все сработало с первого раза. Поле "Домашняя страница" просто пропало из кода страницы, круто! Smile Очень хорошо, что вы достаточно подробно описали куда его вставлять, обычно пишут код, а куда вставлять не говорят. Я достаточно хорошо ориентируюсь в базовом функционале, но что касается нюансов, то для меня это некоторая сложность. Вообщем сейчас будем смотреть как это повлияет на ботов. Еще раз спасибо!