Home News

Защита от спама в WordPress без плагинов

12.04.2018

видео Защита от спама в WordPress без плагинов

Защита от спама в WordPress | Плагин Akismet

Почти 9 лет назад я опубликовал статью о " защите от спама " путем подмены полей. Этот метод и сейчас работает идеально, Akismet вылавливает лишь штук 5 ручных спамных комментариев в месяц, а весь автоматический спам не доходит до него вовсе. Я до сих пор удивляюсь, когда захожу в админку какого-нибудь клиентского сайта и вижу там тысячи спамных комментов. Как среди такой горы мусора можно найти комментарий, который попал в спам по ошибке? В данной обновленной версии этого хака больше не требуется править файлы движка – один раз настроили и больше ничего делать не надо.



Метод подмены полей заключается в том, что мы скрываем настоящее поле для ввода комментария ' comment ' и подсовываем вместо него новое поле ' real-comment '. Для посетителей блога все останется, как прежде и они не заметят никакой разницы, а вот спам-скрипты будут пытаться заполнить стандартное поле ввода комментария со стандартным его именем ' comment '. Ведь скрипт не понимает, что человек не может заполнить текстовое поле, которое он не видит на странице. Спамный комментарий определяется именно по заполненности невидимого для нормальных посетителей поля.


Защита сайта WordPress от спама, плагин Akismet

По пунктам:

1 Добавляем в форму комментирования свое собственное поле 'real-comment'. Для этого откройте файл темы functions.php и добавьте туда код:

//добавляем поле 'real-comment' start function wph_add_new_comment_field ( $args ) {   if ( preg_match ( '/<textarea.*textarea>/' , $args [ 'comment_field' ] , $match ) ) { $textarea = $match [ 0 ] ; $real_textarea = str_replace ( 'comment' , 'real-comment' , $textarea , $count ) ;   if ( $count ) { $hidden_textarea = str_replace ( '<textarea' , '<textarea style="display:none;"' , $textarea ) ; $args [ 'comment_field' ] = str_replace ( $textarea , "$hidden_textarea$real_textarea" , $args [ 'comment_field' ] ) ; } } return $args ; } add_filter ( 'comment_form_defaults' , 'wph_add_new_comment_field' , 30 ) ; //добавляем поле 'real-comment' end

//добавляем поле 'real-comment' start function wph_add_new_comment_field($args) { if (preg_match('/<textarea.*textarea>/', $args['comment_field'], $match)){ $textarea = $match[0]; $real_textarea = str_replace('comment', 'real-comment', $textarea, $count); if ($count) { $hidden_textarea = str_replace( '<textarea', '<textarea style="display:none;"', $textarea ); $args['comment_field'] = str_replace($textarea, "$hidden_textarea$real_textarea", $args['comment_field']); } } return $args; } add_filter('comment_form_defaults', 'wph_add_new_comment_field', 30); //добавляем поле 'real-comment' end


Kama SpamBlock - защита комментариев от спама в Wordpress

rss