No spam.php

… І знову про спам. Хто про нього тільки не писав, і всі писали, що це погано і ай-яй-яй. Я не буду оригінальничати, і теж скажу – це погано. Це ай-яй-яй. Як боротися зі спамерами зі свого боку, знає кожен – поштові фільтри, всякі програми, що відсилають спамеру відповідь, мовляв, адресу такий не знайдений і інше … Бази даних спамери складають дуже просто – нацьковують спеціальні програми на різні сайти, в основному туди, де багато email-адрес – форуми, гостьові, та інше. Далі – справа техніки: програми переглядають html-код, шукають там mailto: і заносять поштову адресу в свою базу. Боротися з цим можна самому, при публікації свого мила – писати його, наприклад, spectator [sobaka] mail.ru. Той, кому треба, виправить адресу при написанні листа сам.

Проте є як мінімум два способи, як при написанні гостьових книг (або форумів) зробити захист від спамерів. Перший – це не публікувати email взагалі, а замість його ставити посилання на сторінку з формою, за допомогою якої охочий, не знаючи адреси, зможе відправити лист відповідного людині. З одного боку – зручно. Так зроблено, наприклад, на webscript.ru. З іншого – не зовсім, тому що багато хто воліє не користуватися формами, а відправити лист через свій улюблений bat! Та й взагалі, невідомо ще куди відправить ваш лист дана форма. Жартую, звичайно, але недоліки цього методу, як і гідності, очевидні.

«Але є спосіб краще!». Не абсолютно краще, але в деяких випадках явно краще. Полягає він у тому, щоб публікувати посилання на email адреси ось у такому вигляді:click here. Бажаючі можуть клікнути і подивитися, що це працює. Програми, «видирали» адреси, нічого на знайдуть.

Кликнули? Працює?

А тепер – як. Перша частина скрипта, яка замінює в тексті адреси на такі посилання проста, навіть немає сенсу її наводити. Якщо що – то в мене у відгуках коштує приблизно наступне:

$nospam= str_replace (‘@’,'[dog]’,$mail);
echo ('<a href=http://spectator.ru/nospam.php3?'.$nospam.'>');

Друга частина – це, власне, скрипт nospam.php3. Складається він рівно з двох рядків:

<php
$url = str_replace (‘[dog]’,’@’,urldecode($QUERY_STRING));
header(‘Location: mailto:$url’);
?>

Міняємо [dog] на @ назад і шолом в хедері mailto: і адресу.

При цьому нічого в браузер не вантажиться і поточна сторінка залишається недоторканою. (Правда, мені тут вже повідомили, що в IE 5.5 це не так …).

Ось, власне, і все. Ускладнить життя спамерам. Замість [dog] можна використовувати все, що завгодно, на що вистачить вашої уяви.

З.И. : Про баге в IE 5.5. Він при натисканні на цю посилання відкриває порожнє вікно. Поштова програма, правда, теж запускається, але все-таки … Пусте вікно – недобре …

Давайте подивимося … А тепер це посилання в IE 5.5 – працює?Click here.

Так?

Зроблено – просто. Але все одно через … Вставляємо куди-небудь порожній iframe: <iframe src="" frameborder=0 vspace=0 hspace=0 width=1 height=1 scrolling=no name="mail"> </ iframe>

Ту частину, яка виводить посилання, пишемо приблизно ось так:

$nospam= str_replace (‘@’,'[dog]’,$mail);
echo (‘<a href=nospam.php3?’.$nospam);
if (eregi ("MSIE 5", $ HTTP_USER_AGENT)) {echo ('target = mail');}
echo (‘>’);

Для того, щоб якщо в людини IE 5 і вище – посилання йшли в цей порожній iframe …

Начебто працює … Тільки ось такий просте рішення перетворилося на якусь бяку …

Дмитро Смирнов

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*