انجمن کاربران لینوکس ایران - تکنوتاکس سابق

نسخه ي کامل: راه حل برای مشکل bot ها
شما در حال مشاهده نسخه ي متني اين صفحه هستيد. مشاهده نسخه کامل تر با قالب بندي صحيح
شلام،

ظاهرا این bot ها دارند بدجوری اذیت می‌کنند. برای راحتی از دستشون دو راه حل به نظرم میاد:
۱. غیر فعال کردن مهمان‌ها، که فکر می‌کنم آلن با اون مخالف باشه.
۲. هر کاربری که پیغامی را ارسال می‌کند یک کد random در فرم ارسال برای او نشان داده شود و بدون وارد کردن دقیق کد مزبور کاربر قادر به ارسال نباشد.
همانند کدهایی که در ثبت نام در یاهو و ... نشان داده می‌شوند. و چه بهتر که مثل یاهو، کدها درون یک عکس که زمینه‌ای نویزی و خط‌های کج و معوج دارد به کاربر نشان داده شود تا Botهای هوشمند نیز نتوانند با یک pattern reconiation ساده محتوای آن را بفهمند.
راه اول که احتمالا منتفی است.راه دوم یعنی CAPTCHA احتمالش بیشتره.احتمال زیاد چنین چیزی برای Post Nuke هست و فکر کنم آقای آلن یک وقت کوچیکی براش بگزاره (شاید یک پچ کوچیک برای TW-CMS) به راحتی قابل انجام باشه.
واقعا بد جوري اذيت ميکنند!هر چي پاک ميکني باز هم مياد!چند تا از پست ها را به همين خاطر،الکي الکي پاک کردم!

آلن جان يک فکري بکن!!Smile
این یک راه پیشگیری نیست اما:

وقتی توی سایتی یه bot یه سری آدرس اینترنتی می‌گذاره هرگز روی اون‌ها کلیک نکنید، چرا که وقتی کلیک کنید و به سایت مقصد برید یه Referer یعنی کسی که مارجعه کرده توی Header شما فرستاده می‌شه که وقتی bot می‌بینه لینکی که داده جای درستی رفته شروع می‌کنه اونجا ارسال پست.
نويد جان من هم چندين بار بر روي اين لينکها کليک کردم!
خیلی از این Bot ها فقط برای Postnuke یا phpBB هستند که کافیه یه چیزی مثل این توی فرم ها اضافه کنیم :
[ltr]
کد :
<input type="hidden" name="auth" value="correct">
[/ltr]
و توی قسمتی که مربوط به اضافه کردن به سایت هست یه کد مثل این بذاریم :
[ltr]
کد :
if ($_POST["auth"] != "correct")
die("Invalid Form");
[/ltr]
این میتونه جلوی تعدادی از Bot ها رو بگیره.
اگر بخوایم جلوی تعداد بیشتری رو بگیریم نیازی نیست که حتما Captcha بذاریم، حتی میشه از یه روش ساده‌تر استفاده کرد.
مثلا توی یه فیلد یه چیزی مثل ۳ + ۵ نوشته بشه و ما جلو اون جواب رو (۸) بنویسیم. و خوب اعداد هم یک رقمی انتخاب میکنیم به کاربرها زیاد فشار نیاد و درگیر مسائل پیشرفته ریاضی نشوند :lol:
البته مسلما این روش ها به راحتی قابل دور زدن هستند، ولی خوب این سایت هدف اصلی نیستش و احتمال اینکه اونها بیان کدهاشون رو بخاطر همین یه سایت تغییر بدن کمه ...
اینم کدش :
[ltr]
کد :
<?
$code = rand(5,20);
$fcode = rand(4,$code-1);
$scode = $code - $fcode;
echo $fcode ." + ". $scode;
echo ' <input type="text" name="answer">';
echo ' <input type="hidden" name="code" value="'.$code.'">';
?>
[/ltr]