<!-- لمشاهدة الموضوع بتنسيق أفضل :: http://www.ali7.us/blog/62 -->
في الأيام القليلة الماضية..تابعت أبرز طرق التصدي للـSpammers بدون اضافات (plug-ins) ..كونها جميعها لم تعمل لدي ..و لم أبحث زيادة في اسباب تعطلها ..
كنت اعاني من مشكلة هذه التعليقات الدعائية .. بل ان بعضها كان محرجاً و يحمل كلمات بذيئة .. ودعوات للقمار و الشرب و و و و
http://www.ali7.us/blog/61
لاحظت ان طريقة عمل الـSpammers .. هي طلب مباشر للملف wp-comment-post.php .. عن طريق الروبوتات (bots) ..
إذاً الحل الأول هو تغيير اسم الملف في المجلد الرئيسي..و من ثم تغييره في داخل ملفي comments.php و comments-popup.php (اذا كنت تستخدمه) ..من مجلد القالب المستخدم ..
كود:
<form action="<?php echo get_option(’siteurl’); ?>/wp-comments-post.php" method="post" id="commentform">
الحل الثاني .. هو منع الوصول للملف wp-comments-post في حالة عدم وجود Referrer ..و غالب الأحيان هذه الطلبات الاوتوماتيكية لا تترك ورائها referrer .. باضافة الكود التالي في صديقنا الملف العزيز .htaccess
كود:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*BLOG-DOMAIN.COM.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
يلزمك وجود mod_rewrite ..في السطر الثاني يقوم بالتحقق ان طريقة الطلب هي POST و ان الملف المقصود هو wp-comments-post ..في السطر الثالث قم بتغييرBLOG-DOMAIN.COM الى نطاق مدونتك ! كي يتحقق ان من يريد التعليق قد قدم فعلاً من موقعك .. و الا لن يسمح له بالوصول للملف !
لمزيد من الحزم ..قم باضافة
كود:
RewriteLog /home/user/public_html/rewrite_log.txt
RewriteLogLevel 2
الى باقي الكود ..مع تغيير اسم المستخدم ..طبعاً المسار في الكود المثال هو خاص بسيرفرات cPanel ..
ناتج الملف..هي المحاولات الفاشلة..ستجد مجموعة من Source IP ..و ستكون لقمة سائغة لحجبها
كود:
<Limit GET>
order allow,deny
deny from 123.45.678.90
deny from 123.456.67.*
deny from 123.45.*.*
allow from all
</Limit>
عن طريق .htaccess أيضاً
بامكاننا اعتبار هذه الطريقة كـ حل ثالث ..بالحجب اليدوي لـIPs المزعجين !
المصادر :
تجارب شخصية !
WordPress Codex