گزیر

::گاهنوشتهای حمیدرضا محمدی::



دربارهٔ من:

آخرین نظردهندگان:

مشترک شوید:

ایمیل خود را در جعبهٔ زیر وارد کنید و دکمهٔ اشتراک را بزنید.

جستجو:

Valid XHTML 1.0 Transitional RSS Feed

صنعت حل کپچای هند و راه‏حلهای مقابله با اسپم با تکیه بر تحلیل محتوا

۸۷/۱۱/۰۴

تا به اینجا رسیدیم که کپچای تصویر متنی را با او.سی.آر به شکل ماشینی دور می‌زنند و به همین دلیل روشهای متفاوتی برای طراحی کپچا ارائه شده است. جالب است بدانیم که این روزها شرکتها و مراکزی وجود دارند که قیمتهای استاندارد (!) برای شکستن کپچای سایتهای مختلف ارائه می‌کنند. به عنوان نمونه این تکه‌ای از لیست قیمت یک شرکت متخصص شکستن کپچاهای سایتهای چینی است (منبع عکس):

لیست قیمت شکستن کپچا

ماجرا محدود به کپچاهای تصویری هم نمی‌شود، کپچاهای صوتی هم توسط نرم‌افزارهای کامپیوتری -گویا به آسانی- قابل عبور هستند (در این نشانی مقاله‌ای تفصیلی درباره‌ی نحوه‌ی عبور از کپچای صوتی جیمیل بخوانید). کپچاهای تصویر متنی شرکتهای بزرگ (مایکروسافت، یاهو و گوگل) به دلیل تعداد کاربران بالا و همچنین اعتبار ایمیلهای ارسالی از آنها برای نرم‌افزارهای مبارزه با هرزنامه‌ها بارها و بارها شکسته شده‌اند (اینجا را ببینید).

اما کپچاهای ابتکاری چه؟! آیا مقاومت کپچاهای ابتکاری (کپچای محاسباتی، کپچای سه‌بعدی، سگ و گربه‌ی رپیدشر و ) بیشتر نیست؟ آیا نرم‌افزارهای ارسال انبوه اسپم از این کپچاها هم می‌توانند عبور کنند؟

تا اینجا و با توجه به سرمایه‌گذاریهای قابل توجه ارسال کنندگان اسپم روی کارشان باید به این نتیجه رسیده باشید که در این «شغل» آنقدر «پول» هست که نه تنها اجازه‌ی استفاده از راهبردهای «تحقیق و توسعه» را برای شکستن سدهای پیش رو به آنها می‌دهد بلکه احتمالاً این درآمدها می‌تواند آنقدر زیاد باشد که حاضر باشند برای حل مشکلات پیش‌رو مستقیماً و عملاً نیروی انسانی در اختیار بگیرند و از کمک نیروهای کار ارزانقیمت کشورهای در حال توسعه استفاده کنند.

به پشتوانه‌ی سرمایه‌ی ارسال کنندگان اسپم در کشورهایی مانند هند شاهد ظهور یک صنعت درآمدزای بدیع هستیم: «صنعت حل کپچا»! اتاقهایی با بیست الی سی اپراتور که در ازای دستمزدهایی همچون «هر ۱۰۰۰ کپچا ۲ دلار» ساعتهای کاری خود را با بازخوانی کپچاها می‌گذرانند. فرایند کار به این صورت است که نرم‌افزار ارسال اسپم تصویر کپچا را جدا می‌کند، به یکی از اپراتورها می‌دهد، اپراتور مقدار آن را درج و ارسال می‌کند و نرم‌افزار، اسپمش را ارسال می‌کند. با این سیستم کاری، شرکتهای حل کپچای هندی ادعای حل روزانه تا ۵۰۰۰۰ کپچا یا بیشتر را به مدد چند ده کامپیوتر و اپراتور، و شیفتهای کاریی که ۲۴ ساعت ۷ روز هفته را پوشش می‌دهند دارند (برای کسب اطلاعات بیشتر اینجا را ببینید).

نمایی از نرم‌افزارهای حل کپچا با کمک اپراتورهای انسانی

اینجاست که کارکرد کپچا برای جلوگیری از ارسال انبوه اسپم زیر سؤال می‌رود، چرا که کپچا برای حل این معضل، مبتنی بر این ایده است که ارسال‌کنندگان انبوه اسپم ماشین هستند و با تشخیص انسان از ماشین می‌توان جلوی ارسال انبوه اسپم را گرفت. و در اینجا حداقل بخش سخت‌تر کار را انسانها انجام می‌دهند.

دسته‌ی دیگری از راه‌حلهای مقابله با اسپم بر «تحلیل متون ارسالی» مبتنی هستند. مقایسه‌ی آی.پی ارسال‌کننده با لیست سیاه ارسال‌کنندگان اسپم شناخته شده، شمارش تعداد لینکهای موجود در متون و جستجوی نشانی سایتهای اسپم در بین آنها، بررسی محتوای متن و جستجوی واژه‌های متداول موجود در متون اسپم در متن ارسالی (یک آمار جالب در این زمینه را در این تصویر ببینید) از جمله ترفندهای به کار گرفته شده در این روش هستند. معمولاً برای جلوگیری از دور زدن شدن آسان الگوریتمها و روشهای مورد استفاده در این راه‌حلها بخش عمده‌ای از این روشها منتشر نمی‌شوند و تنها ابزارهای ارتباطی به صورت کدباز در اختیار استفاده‌کنندگان قرار می‌گیرند. «اکیسمت» سیستم مقابله با نظرات هرز که در وردپرس و برخی دیگر از سیستمهای مدیریت محتوی به کار گرفته شده است از جمله ابزارهای مبتنی بر این روش است.

این احتمالاً آخرین قسمت سری مطالبی بود که درباره‌ی «اسپم» نوشته‌ام. فهرست نوشته‌های این سری:

قسمت اول: ریشه‌ی نام اسپم

قسمت دوم: هرزنامه‌ها

قسمت سوم: کدامیک هرزنامه‌های بیشتری می‌گیرند: «علی» یا «زهرا»؟

قسمت چهارم: بگذارید «اسپم»ها را آنها بخورند!

قسمت پنجم: درآمدزایی هرزنامه‌ها

قسمت ششم: ماشینهای صاحب‌نظر

قسمت هفتم: کپچا: «تو آدمی؟!»

قسمت هشتم: او.سی.آر: قاتل کپچای تصویر متن

قسمت نهم: صنعت حل کپچای هند و راه‌حلهای مقابله با اسپم با تکیه بر تحلیل محتوی

نوشته شده در ساعت ۱۷:۵۸

این برنامه‏نویسهای بامزه

۸۷/۱۰/۲۴

پیغام اکیسمت

«گوشت خوک» توی وبلاگ من چه غلطی می‌کنه؟ من گیاهخوارم!

وردپرس وبلاگم را به‌روز کردم، داشتم دوری در محیط جدید می‌زدم که در قسمت آمارهای اکیسمت این جمله را دیدم (وردپرس -قابل دریافت از این نشانی– سیستم مدیریت وبلاگ من است و اکیسمت افزونه‌ای برای وردپرس است که جلوی نظرات هرز را می‌گیرد). طراحان اکیسمت در برابر «اسپم» (=نظرات هرز که اتفاقاً نام نوعی خوراکی هم هست) واژه‌ی «هم» (=گوشت خوک) را برای نظرات واقعی و غیرهرز گذاشته‌اند و خوب! در متن کوتاهی با عنوان بامزه‌ی بالایی جریان را توضیح داده‌اند.

برنامه‌نویسها -حتی اگر ذاتاً آدمهای بامزه‌ای نباشند- معمولاً مجال زیادی برای کارهای -ظاهراً- بامزه دارند که متأسفانه – یا خوشبختانه- خیلی از این مزه‌پراکنیها را کاربر نهایی نرم‌افزار نمی‌بیند و در سطح کد باقی می‌ماند. اگر برنامه‌نویس ویژوال سی بوده باشید -از نوع قدیمی‌ترهایش- احتمالاً مقالات و نمونه‌کدهای پل دیلاسیا را دیده‌اید و خوانده‌اید و با توضیحات توأم با شوخیش برخورد کرده‌اید (تلفظ درست اسم این آقا را -اگر کسی می‌داند- بگوید، بیشتر از این آبرویمان نرود). امضای او در میان فایلهای برنامه‌هایش این است: «اگر این کد کار کرد پل دیلاسیا آن را نوشته و اگر نه، من نمی‌دانم چه کسی آن را نوشته!» خوب! ممکن است چندان بامزه به نظر نرسد، اما قبول کنید که وقتی چند ده دقیقه به صفحه‌ی مانیتور خیره شده‌اید و کلی کد مزخرف بی‌ربط به اتفاقی که نهایتاً قرار است بیفتد را خوانده‌اید و هنوز هیچ چی نفهمیده‌اید دیدن جمله‌ی

Stop beating your head, you might hurt yourself!

از هر جوکی که ممکن است فکرش را بکنید خنده‌دارتر به نظر می‌رسد (و البته واقعاً کمک می‌کند که به خودتان کمتر صدمه بزنید). بعضی جملات بامزه‌ی معروف دیلاسیا را اینجا بخوانید.

البته بعضی وقتها کارهای بامزه‌ی برنامه‌نویسها عمداً یا اشتباهاً در دیدرس کاربر نهایی قرار می‌گیرد. مثلاً این یکی از پیغامهای یکی از ویرایشهای وین‌امپ است که زمانی معروف شده بود و حرفش در اینترنت پیچیده بود (منبع عکس):

پیغام با مزه‌ی وین امپ

«… . این اتفاق در واقع هرگز نباید بیفتد!»

برنامه‌نویسان وردپرس پیش از این هم کارهای بامزه -و این یکی واقعاً بامزه- کرده‌اند. اگر وبلاگ مبتنی بر وردپرس دارید (ویرایش ۲.۶ یا ۲.۷)، صفحه‌ی ویرایش یک مطلب قدیمی را بیاورید. از کادر «Post Revisions» (بازنگریهای نوشته) موردی را انتخاب کنید و سپس آن مطلب را با خودش مقایسه کنید. تصاویر زیر نشان دهنده‌ی بخشی از اتفاقی است که بعد از این کار می‌افتد:

ماتریکس وردپرس

نوشته شده در ساعت ۲۲:۳۳

… و فهرست افزونه‌های وردپرسم

۸۶/۰۲/۰۹

تا آنجا گفتم که تقریباً فقط مشکل آمار خالی در صفحه‌ی آمار بازدیدکنندگان مانده بود.

نگارش جدیدتر افزونه‌ای را که صفحه‌ی آمار بازدیدکنندگان با آن ساخته می‌شد گرفتم و نصب کردم. ویرایش جدیدتر مشکلی نداشت، یعنی آمار را به درستی می‌آورد. اما یک مشکل بزرگ برای من داشت: این افزونه به طور پیش‌فرض آمارش را فقط از طریق سیستم مدیریت وبلاگ وردپرس برای استفاده‌ی شخصی صاحب وبلاگ در اختیار می‌گذارد تا صاحب وبلاگ مجبور نباشد برای مشاهده‌ی آمارش مستقیماً به سرویس آمارگیری گوگل مراجعه کند. حالا من قسمتی از کد را که در نگارش قدیمی افزونه وظیفه‌ی نمایش اطلاعات را برعهده داشت پیدا کرده بودم، بعد با کپی/پیست آن را به یکی از فایلهای قالب وبلاگم اضافه کرده بودم و اینطوری توانسته بودم این آمار را عمومی کنم: طوری که بازدیدکنندگان عادی هم بتوانند این آمار را ببینند. در کنار این کار کمی هم کدهای اچ.تی.ام.ال آن را دستکاری کرده بودم تا هم فارسی شود و هم مشکل راست به چپ نداشته باشد. حالا اگر می‌خواستم از نگارش جدید استفاده کنم باید همین کار را تکرار می‌کردم. اما مشکل اینجا بود که فایل دستکاری شده‌ی من با نگارش جدید سازگار نبود. کمی با نگارش جدید ور رفتم و به جای مهمی نرسیدم. در واقع اصلاً حس این که درگیر قضیه شوم را نداشتم. حدس می‌زدم ایراد از اینجا نشأت گرفته باشد که مثلاً سرویس آمارگیری گوگل تغییراتی در سیستمش داده باشد و برای دریافت اطلاعات از آن نیاز باشد حتماً از نگارش جدید افزونه‌ی مذکور استفاده شود. به همین دلیل داشتم کم کم بی‌خیال قضیه می‌شدم که یک چیزی یادم افتاد.

یادم افتاد که اخیراً رمز جیمیلم را (که برای ورود به سیستم آمارگیری گوگل کاربرد دارد) عوض کرده‌ام. افزونه‌ی کذایی عنوان می‌کند که رمز جیمیل را فقط یک بار نیاز دارد و آن را ذخیره هم نمی‌کند، شاید به همین دلیل با وجود تغییر رمز جیمیلم نگارش جدید افزونه دارد اطلاعات را می‌گیرد. نگارش قدیمی را دوباره فعال کردم و سعی کردم حساب کاربری جیمیلم را دوباره اضافه کنم. مشکلی پیش آمد که با جستجوی پیغام خطا در گروه گوگل خاص این افزونه راه حلش را پیدا کردم. این مشکل گویا در نگارشهای جدیدتر هم دیده می‌شود و راه حل آن تغییر یکی از فایلهای مورد نیاز برای اجرای افزونه است که ربطی به این که نگارش آن قدیمی باشد یا جدید ندارد. بعد از رفع این مشکل حساب جیمیلم را اضافه کردم و …! نتیجه همان چیزی بود که ناامیدانه انتظارش را می‌کشیدم: درست شد!

آمار بازدید هفتگی

اما بعد …! گفتم بد نیست یک اشارهای بکنم به فهرست افزونه‌های مورد استفاده در وبلاگم. این فهرست احتمالاً برای وردپرس‌کارها مفید است:

ادامه »

نوشته شده در ساعت ۱۸:۵۹

آزمایش می‌کنیم

۸۵/۱۲/۱۹

فکر می‌کنم آمار نظرات هرز وبلاگ من به نسبت تعداد بازدیدکننده‌های روزانه‌اش کمی بالاست:

Akismet has caught spam for you ...

و جالب اینجاست که اکثر قریب به اتفاق این نظرات هرز روی یک نوشته‌ی قدیمی گذاشته می‌شوند که اتفاقاً هیچ نظر آدمیزادی 😉 هم روی آن گذاشته نشده. امروز آمدم یک تستی بکنم ببینم تأثیری دارد یا نه و آن این بود که یک تغییر کوچولو توی slug آن نوشته بدهم (delicious-23 بود، کردمش delicious-231). الان که این مطلب را دیدم، دوباره یادش افتادم، گفتم بروم ببینم تأثیری داشته یا نه که جواب نه بود:

new spam comment

الان به فکرم رسید که اگر بروم نظراتش را ببندم احتمالاً تأثیر دارد (یعنی می‌شود که نداشته باشد؟!)، به هر حال اگر نداشته باشد هم خیلی مهم نیست چون فعلاً اکیسمت دارد کار خودش را می‌کند و درصد اشتباهاتش هم پایین است. به هر حال فقط امیدوارم که این کارم باعث نشود این بلیه دامن نوشته‌های دیگر را بگیرد، اگر گرفت اخطارش را اینجا می‌گذارم تا کس دیگری این اشتباه را نکند.

پی‌نوشت

فکر می‌کنم که بستن نظرات آن نوشته مفید بوده، از دو روز پیش تا حالا هیچ نظر هرز جدیدی برایم نیامده. اگر هم بعداً نوشته‌ی دیگری دچار این مشکل بشود فکر نمی‌کنم به بسته شدن نظرات این یکی ربط داشته باشد.

نوشته شده در ساعت ۱۷:۲۲

نظرات هرز

۸۵/۰۶/۰۳

اگر وبلاگ داشته باشید و سیستم مدیریت محتوای آن از این سیستمهای شناخته شده باشد احتمالاً با معضلی به اسم اسپم یا نظرات هرز آشنایی دارید: انبوهی از نظرات غیرواقعی که حاوی تبلیغات محصولات خاص یا لینک به سایتهای عرضه‌کننده‌ی آنهاست و اکثر آنها به صورت خودکار و توسط نرم‌افزارهای کامپیوتری گذاشته می‌شوند (جالب است که بخش یادداشت مهمان انگلیسی سایت قدیمی من هم -که تا آنجا که یادم هست کدش را خودم نوشته‌ام [با پرل] و احتمالش کم است که آنجا طعمه‌ی اینجور حرکات خانه‌برانداز شود- از این معضل در امان نمانده. البته به نظر می‌رسد اسپمهای آنجا بیشترشان دستی باشند تا اتوماتیک چون مهاجمان در آنجا چند راه مختلف برای ایجاد لینک را آزمایش کرده‌اند که نظر به نفوذناپذیری برنامه‌های اینجانب [جهت اطمینان اینجا را ببینید 😉 ] تلاششان بی‌ثمر بوده).

نظرات هرز در دفترچه یادداشت مهمان انگلیسی من

به هر حال سیستم مدیریت وبلاگ وردپرس راه‌حلهای مؤثری برای مقابله با این معضل دارد که معروفترینشان همین افزونه‌ی اکیسمت است که از جمله افزونه‌هایی است که همراه خود بسته‌ی اولیه وجود دارد و فقط نیاز است کاربر آن را فعال کند و با کدی که از wordpress.com می‌گیرد وبلاگش را تحت محافظت این افزونه درآورد. من هم چند وقتی که از راه‌اندازی اینجا گذشت مجبور شدم این افزونه را فعال کنم تا جلوی نظرات هرز مقطعی را بگیرد و انصافاً هم در ابتدای فعالسازی که من اسپم زیاد داشتم خیلی خوب کار می‌کرد. اما تقریباً می‌توانم بگویم چند هفته‌ای می‌شود که این افزونه خیلی بد عمل می‌کند و بسیاری از نظرات واقعی را اسپم تشخیص می‌دهد. جالب است که سایت خود این افزونه نشان می‌دهد تا به حال ۹۴% از نظراتی که به سایتهای محافظت شده توسط این افزونه ارسال شده‌اند اسپم تشخیص داده شده‌اند و به نظر من احتمال این که این افزونه با اشتباهات خود باعث از دست رفتن درصد بالایی از نظرات خوانندگان وبلاگها شود زیاد است (مخصوصاً وبلاگهایی که تعداد نظراتشان آنقدر بالاست که صاحبش فرصت نمی‌کند قسمت نظرات اسپم را چک کند).

البته این را هم بگویم که فعلاً قصد ندارم این افزونه را غیرفعال کنم، چون با وجود مشکلات آن فکر نمی‌کنم جایگزین بهتری برای آن پیدا شود.

نوشته شده در ساعت ۲۰:۱۲