Главная > DLE > DLE хаки: Защита комментариев от спама методом подмены полей имя и e-mail формы добавления комментария

DLE хаки: Защита комментариев от спама методом подмены полей имя и e-mail формы добавления комментария


29 апреля 2011. Разместил: dimon
Попробуем защитить свой сайт на DLE от спам каментов рассылаемых с помощью различных программ путем подмены полей имя и e-mail.

Прежде всего открываем файл шаблона www\templates\{ваш_шаблон}\addcomments.tpl и ищем поля формы:

[not-logged]
            <tr>
                <td class="label">
                    Имя:<span class="impot">*</span>
                </td>
                <td><input type="text" name="name" id="name" class="f_input" /></td>
            </tr>
            <tr>
                <td class="label">
                    E-Mail:<span class="impot">*</span>
                </td>
                <td><input type="text" name="mail" id="mail" class="f_input" /></td>
            </tr>
[/not-logged]


и заменяем name="name" id="name" на name="secretname" id="secretname", а name="mail" id="mail" на name="secretname" id="secretname":

[not-logged]
            <tr>
                <td class="label">
                    Имя:<span class="impot">*</span>
                </td>
                <td><input type="text" name="secretname" id="secretname" class="f_input" /></td>
            </tr>
            <tr>
                <td class="label">
                    E-Mail:<span class="impot">*</span>
                </td>
                <td><input type="text" name="secretmail" id="secretmail" class="f_input" /></td>
            </tr>
[/not-logged]


Теперь идем открываем файл который выполняет обработку этой формы www\engine\modules\addcomments.php и в нем меняем:

$name = $db->safesql( $parse->process( trim( $_POST['name'] ) ) );
$mail = $db->safesql( $parse->process( trim( $_POST['mail'] ) ) );


на

$name = $db->safesql( $parse->process( trim( $_POST['secretname'] ) ) );
$mail = $db->safesql( $parse->process( trim( $_POST['secretmail'] ) ) );


PS: Лучше вместо secretname и secretmail вообще использовать какие-нибудь бессмысленные значения типа a2jv15dsf.

PSS: Если спамеру будет "не влом" посмотреть код странички, то он запросто заметит подмену полей. Однако, больше вероятность, что он просто найдет другой сайт.

PSSS: Код приведен для версии 9.2, но, думаю, для других версий все аналогично.

Вернуться назад