پیش از این درباره Spam در آفتابگردان مطالب مهمی داشتهایم که حیف است اگر کسی نخوانده باشد! خودم که برخی را بعد از ۱۲ سال مرور میکنم چیزهای تازه یادم میآید!!
- اسپم چیست؟ چرا ایمیل ما اسپمی میشود؟ +راههای جلوگیری از Spam
- کپچا چیست؟ [CAPTCHA] (كمی درباره مهار موتورهایی كه نظرات ناخواسته میفرستند)
- Spam چیست؟ (درباره ایمیلهای ناخواسته بیشتر بدانید)
- با تولیدکننده های اسپَم (ایمیل های مزاحم تبلیغاتی) مبارزه کنید.
- نکاتی بسیار مهم در قرار دادن ایمیل بر روی صفحات وب
- چگونه از Spam شدن ایمیل های یک سایت در Gmail جلوگیری کنیم؟
- خواهش میکنم در ارسال ایمیل گروهی دقت کنید!
مقدمه
اسپمرها (یعنی کسانی که ایمیلهای تبلیغاتی ناخواسته ارسال میکنند و از این طریق گاهی سود سرشاری هم کسب میکنند) اگر بخواهند خودشان یک سرور راه بیندازند و مدام از روی آن ایمیل تبلیغاتی ارسال کنند، در چند ساعت توسط سرویسهای ارائه دهنده ایمیل مثل gmail و yahoo شناسایی میشوند و آی.پی سرور آنها به عنوان Spammer در لیست سیاه قرار میگیرد و از این پس ایمیلهای ارسالشده توسط آنها یا مستقیماً به پوشه Spam میرود و یا کلاً بدون اینکه کاربران متوجه بشوند، نابود میشود. بنابراین اسپمرها روی سایتها و سرورهای دیگر دنبال یک باگ یا سوتی میگردند تا آنها را قربانی قرار دهند و از طریق سرور آنها بتوانند ایمیلهای تبلیغاتی خود را ارسال کنند. اگر سایت شما چنین باگی داشته باشد و قربانی شوید، ممکن است IP سرور سایت شما در لیست سیاه سرویسهای ایمیل قرار گیرد و دیگر هیچ ایمیلی از طرف سایت شما یا سایتهای روی سرور شما به دست کاربران نرسد! خارج شدن آن IP از لیست سیاه هم یک پروسه بسیار پیچیده دارد! بنابراین اگر باگی که روی سایت شما است باعث این مشکل شود، معمولاً هاستینگها سایت شما را معلق یا اخراج میکنند و ممکن است هزینه تهیه یک آی.پی جدید را نیز از شما بگیرند! مثلاً ما حدود ده سال پیش که از این چیزها خبر نداشتیم، آخر سال آمدیم برای چند هزار کاربر سایت پیام تبریک فرستادیم!! آن زمان من یادم هست که ۷۰ هزار تومان جریمه دادیم تا سایت را باز کردند!!
و اما یک تجربه جدید:
اگر امروز صبح وارد آفتابگردان میشدید با پیغام This account has been suspended به معنی «این اکانت معلق شده است» مواجه میشدید. حقیقت این است که تا به حال چندین بار این اتفاق برای ما افتاده است و هر بار دلیل آن، یک چیز بوده است: سیستم امنیتی سرور به دلیل ارسال اسپم از طریق سایت، آن را اسپمر تشخیص داده و برای جلوگیری از اسپمی شدن آی.پی سرور سایت را معلق کرده است.
باور میکنید که این مصیبتی است که حدود ده سال است ما با آن مواجهیم!؟ حتی جالب است بدانید که طی این سالها چندین بار با میزبانهای سایت درگیر شدهایم و قهر کردهایم و از یک میزبان به میزبان دیگر منتقل شدهایم و خلاصه کلی مصیبت کشیدهایم!
متأسفانه سیستمهای امنیتی سرورها نمیتوانند دقیقاً بگویند که این اتفاق از چه بخشی از سایت شما میافتد؟ لاگها فقط میگفت از فایل x.php به ایمیلهایی شبیه xyz@qq.com ایمیل ارسال شده و این فایل یک ترمینال برای همه فایلها بود و نمیشد فهمید دقیقاً کدام بخش از سایت ایمیل را ارسال کرده. (سایت qq.com یک سایت شبیه yahoo.com خودمان است اما مخصوص چینیها. کاربران مثل یاهو از طریق این سایت ایمیل برای خود ثبت میکنند)
روش کار اسپمرها
قضیه از این قرار بود که یک شرکت یا شخص Spammer یک باگ در سایت ما پیدا کرده بود که میشد از آن طریق به ایمیل خاصی ایمیل فرستاد. حالا یک برنامه خودکار (روبات یا موتور) نوشته بود که از ایمیل 1@qq.com شروع میکرد و در یک حلقه تقریباً بینهایت، همینطور این عدد را افزایش میداد و از طریق سایت ما به آن ایمیل پیغام تبلیغاتی خاص خودش را ارسال میکرد... تصور کنید، آمار لاگها میگفت: مثلاً طی یک روز، ۵۰ هزار اسپم از Mail Server سرور ما خارج شده!
مُسَکنها
در این سالها ما نمیتوانستیم بفهمیم که چه بخشی از سایت باگ دارد اما با ترفندهای مختلف سعی میکردیم موقتاً جلو اسپمر را بگیریم. مثلاً:
- مدیر سرور سهم ارسال ایمیل از طرف سایت ما را به ۵ ایمیل در ساعت کاهش داد که البته این موضوع داد مشتریان ما را درمیآورد که چرا وقتی به شما ایمیل میزنیم ایمیل پیغام عدم Delivery میدهد؟ (چون ۵ تا را آن اسپمر پر میکرد و دیگر نوبت به ما نمیرسید!!). جالب است که این ترفند چندان کاربردی نبود چون به هر حال آن چند هزار ایمیل در صف ارسال میلسرور قرار میگرفت و به میلسرور فشار میآمد! (هر چند که ارسال نمیشد) اما به هر حال از این نظر که اسپمر بفهمد که ما لقمه چربی نیستیم (یعنی فقط ۵ ایمیل در ساعت میتواند ارسال کند) خوب بود و باعث میشد برخی اسپمرها ما را از لیست قربانیهای خود خارج کنند و بروند سراغ سایتهای دیگر.
- آی.پی سرور روبات به دست میآمد و در فایل htaccess به صورت زیر ممنوعالورود میشد:
DENY FROM 180.108.208.207
- تابع mail در برخی پوشهها توسط htaccess از کار انداخته میشد...
- هر ماژولی که فکر میکردیم قدیمی شده و ضرورتی ندارد که در سایت باقی بماند از روی سایت غیرفعال یا حذف میشد.
و خلاصه هر ترفندی میزدیم مدتی جواب میداد اما دوباره سر و کله یک موتور دیگر پیدا میشد و مصیبت دوباره شروع میشد!
تا اینکه امروز بالاخره فکر سادهای به ذهنم رسید که نمیدانم چرا در این سالها این فکر به ذهنم نمیرسید!؟ و آن اینکه: برای چند ساعت، تمام آدرسهایی از سایت که توسط کاربران فراخوانی میشود را در یک فایل txt ذخیره کنم. بنابراین کد زیر را در فایل config.php که بالاخره توسط همه بخشهای سایت فراخوانی خواهد شد قرار دادم:
$handle=fopen('log.txt', 'r+');
$theData=fread($handle, filesize('log.txt'));
$log = $_SERVER['REMOTE_ADDR'].':'.$_SERVER['REQUEST_URI'];
fwrite($handle,"n".$log);
fclose ($handle);
این کد IP کاربران و آدرسی که باز کردهاند را جایی ذخیره میکند.
باگ کجا بود؟
بالاخره بعد از سالها درگیری فهمیدم از کدام بخش از سایت سوء استفاده میکردهاند! ماژولی قدیمی به نام Recommend_Us که در گذشته روی همه سایتها بود و حتی الان هم روی برخی سایتها هست و از طریق آن میتوانید سایت ما را به دوستانتان معرفی کنید. این ماژول نام و ایمیل دوستتان را میگرفت و پیغامی برای آن دوست ارسال میٰکرد که فلانی شما را به بازدید از سایت آفتابگردان دعوت کرده...
اسپمر به جای ایمیل، ایمیل کاربری که میخواسته برای او تبلیغ بفرستد را وارد میکرده و به جای نام، یک متن تبلیغاتی که حاوی لینکی به سایت خودش است! (به تصویر زیر دقت کنید که در حدود ۲ ساعت، بیش از ۴ هزار تلاش برای ارسال ایمیل از طریق این ماژول رخ داده)
اصلاً فکرش را هم نمیکردم که این ماژول ساده که ما هیچ اهمیتی برای آن قائل نبودیم، بیش از ده سال چنین مصیبتی برای ما ایجاد کند! ماژول را از سایت Shift+Delete کردم!!!
اما این درس، طبق معمول ارزشش را داشت. نکات فراوانی یاد گرفتم! پیش از این گفته بودم که من بخش اعظمی از دانستههایم را مدیون هکرها و اَتَکِرها (Attackers) هستم. به خاطر حملات آنها در این حدود ۱۵ سال، من مجبور شدهام صدها ساعت ویدئوی آموزش هک ببینم، هزاران جستجو در این زمینه انجام دهم و صدها مطلب و ترفند بخوانم و یاد بگیرم که همان نکات در درسهایی مثل امنیت برای دانشجوها گفته میشود و اگر فرصت میبود یک کتاب در این زمینه آماده انتشار است و فقط یک بازبینی نهایی لازم دارد که منتشر بشود! و اینکه اسکریپتی برای مانیتور امنیت سایت نوشتهام که اگر یک روز منتشر شود، بسیاری از وبمسترها آنرا جزء ابزارهای حیاتی خود قرار خواهند داد. (اینکه این موارد منتشر نمیشود یکی از دلایلش این است که صحبت از امنیت در یک سایت، حس کنجکاوی و زورآزمایی هکرها را برمیانگیزد و من فعلاً فرصت کافی برای مبارزهطلبی ندارم;) من در این سالها عاقبت «بهروز یخ» که یک زمان او را برای آموزش هک به تلویزیون میآوردند و بسیاری از هکرها که ادعاهایی در زمینه هک داشتند و بدترین نوع هک یعنی هک دامنه روی خودشان اعمال شد را دیدهام!! من عاقبت هکری که سایت ما را اذیت میکرد و بابت بیان باگ هزینه هنگفتی میخواست و بعد از مدتی به سایت خودش سر زدم و دیدم هکرهای بالاتر از خودش بلایی سرش آوردهاند که نمیتواند و نخواهد توانست آن لکه ننگ را پاک کند دیدهام!! با این مسائل بهتر است شوخی نشود...)
این مطلب برای طراحان سایت حاوی نکات جالبی بود... به آنها فکر کنید. اینکه از چه بخشهایی برای ارسال اسپم از سایت قربانی استفاده میشود؟ اینکه سادهترین بخشهای سایت از نگاه هکر و حملهکننده بهترین جاها برای نفوذ هستند. اینکه چطور لاگ رفتار کاربران میتواند محل نفوذ را بشناساند و...
موفق باشید؛
حمید رضا نیرومند