МНОГО МРАЗЯ СПАМ!
Да-а-а…
И вие мразите СПАМ, ако не сте ГАДЕН, МРЪСЕН, ШИБАН СПАМЪР.
Преди няколко години, след неуспешни опити да спра шибаният, гаден мръсен СПАМ с общоизвестните анти-спам защити, реших да си направя собствена.
И си направих.
Truden Web Site е пазен от 2КВ код.
С малко по-малко пазя и този мой личен weblog.
Какъв е тарикатлъкът?
Ей сега ще ви кажа.
Първо да ви кажа, че излъгъх в заглавието. Не е plugin, но го излъгах с добри намерения и ви обещавам, че няма да съжалявате.
Почвам!
Ама първо да обясня, защо не е plugin.
Защото не знам някакъв начин с който да може да се закачи wp-comments-post.php
към plugin.
А това е файлът, който пропуска СПАМ.
Ако може да се спре (не да се филтрира) автоматизирания СПАМ, то е само чрез този файл.
За целта трябва да се добаят няколко линии в него.
И така, пригответе си:
comments.php
(в папката на вашата WordPress тема)
header.php
(в папката на вашата WordPress тема)
ОТВОРЕТЕ comments.php
в удобният ви текст едитор
Намерете <input name="submit" type="submit" "нещо друго според дизайна на темата ви">
Променете на: <input onmousedown="return trubar8()" name="submit" type="submit" "нещо друго според дизайна на темата ви">
Запазете и затворете файла.
ОТВОРЕТЕ header.php
Прекопирайте долния код и го внесете преди </head>
<script language="javascript" type="text/javascript">
<!--
function trubar8() {
document.cookie = 'TrBr=sucker; path=/'
}
//-->
</script>
ВАЖНО: Ако инсталацията ви е в sub folder (пр. /blog) в горния код трябва да добавите името на папката в която се намира WordPress.
Пр. path=/
ще стане path=/blog/
, където blog
e името на вашата папка.
Запазете и затворете файла.
Изтеглете този wp-comments-post.txt и го преименувайте на wp-comments-post.php
Направете резервно копие на оригиналния файл и качете този на негово място в основната папка.
Побързайте да качите и горните два променени файла на мястото им в папката на WP темата, която ползвате.
ГОТОВО!
Сега вече никой робот, ако ще и да си спука задника, не може да ви прати СПАМ.
НО!!! роботите спамват с trackback, а той минава през xmlrpc.php
Ако не държите да имате обратни (trackback) връзки към своите публикации, просто изключете тази възможност от административния си панел. Ако МНОГО са ви важни „коментарите“ в квадратни скоби, ще трябва да си държите Akismet включен.
Е, малко по-бавно се презарежда страницата с неговото ВНИМАТЕЛНО филтриране, но посетителите ви не псуват чак толкова много.
Как работи тази магия?
В header.php
се вкарва javascript функция, която генерира бисквитки, при щракване на бутона, в който вкарваме код (comments.php
) за извикване на функцията.
В wp-comments-post.php
правим проверка за бисквитките и ако ги няма, значи е робот или потребител, който не е щракнал на бутона а е ползвал клавишът Tab за прехвърляне на фокуса и после е щракнал Enter. При това положение се появява страница с обяснение.
След всяка грешка, бисквитките се изтриват. Същото изтриване правим и след приемането на коментара.
Така бисквитките стоят в клиента само за по-малко от секунда.
Има допълнителен вариант за проверка, ако робота идва с готови бисквитки, но това не е нужно за сега.
Защо роботите не могат да минат през тази бариера (TruBar).
Щото са глупави.
Някои роботи могат да четат javascript, но трябва и да могат да го изпълняват, а не да го ползват информативно.
Не знам за робот, който може да имитира щракане с мишка, а точно това изисква скрипта.
Е ми, това е.
Аре, със здраве и без СПАМ.
П.П. Ако това ви харесва, може да ви кажа как да ползвате същия чалъм за предпазване от роботи, които се регистрират във вашия weblog.
Пропуснах да ви кажа, че ако искате да направите защитата си още по-бетонна, може да промените името на файла
(wp-comments-post.php)
, който ви предлагам за сваляне на нещо друго (пр. my-comments.php)Значи променяте името и отваряте comments.php
НАМИРАТЕ в него:
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
и го променяте на
<form action="<?php echo get_option('siteurl'); ?>/my-comments.php" method="post" id="commentform">
ВАЖНО: ако направите тази промяна, ще трябва да променете името на оригиналния
wp-comments-post.php
наwp-comments-post.php.back
, за да не може да се ползва от роботите.бутон за тровене на мейл ботове
tools.bl.ee/emails.php