گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

مخفی کردن ایمیل از Bot ها Crawler ها و Spammer ها

نویسنده:
۲۱ اردیبهشت ۹۸

اگر طراح وب باشین قطعاً یکی از مشکلاتی که باهاش مواجه هستین گذاشتن ایمیل توی متن وب سایت هست. چون وقتی ایمیل را به صورت مستقیم مثلاً me@domain.com میگذارین در زمان کوتاهی Bot ها و Crawler های مربوط به Spammer ها این آدرس را پیدا میکنند و دریافت Spam از در و دیوار ایمیلتون شروع میشه.

یکی از راه حل‌های عمومی این هست که ایمیل را به صورت عجیب و غریب بنویسین ، مثلاً me [at] domain [dot] com یا me[@]domain.com و غیره ، که خوب این روش هم اصلاً مطمئن نیست و یک Cralwer نسبتاً باهوش میتونه ایمیل درست را استخراج کنه و شما فقط استخراج را کمی سخت کردین.

بهترین راه حل این هست که ایمیل را در فرمت یک عکس ذخیره کنید و اون عکس را نمایش بدین تا Crawler ها نتونن اصل ایمیل را پیدا کنند که این روش هم دردسرهای خاص خودش را داره و تراز کردن متن و عکس میتونه اعصاب خورد کن باشه و توی نمایش‌های Responsive هم مشکلات نمایشی به وجود بیاره چون شما نمیتونین متن عکس را با بزرگ و کوچیکی متون کناریش تراز و اندازه کنید!

اما چند روز پیش به یک روش خیلی جالب روی وب برخورد کردم که با استفاده از css ایمیل را به همون فرمت متنی نمایش بدیم و امکان استخراج را حقیقتاً سخت کنیم. کافیه از یک span به صورت زیر استفاده کنیم:

<span class="e-mail" data-user="me" data-website="domain.com"></span>

حالا توی CSS داریم:

.e-mail:before {
content: attr(data-website) "\0040" attr(data-user);
unicode-bidi: bidi-override;
direction: rtl;
}

و ایمیل شما به راحتی به صورت متنی ، تراز و هم اندازه با باقی متون به صورت محرمانه باقی میمونه.