Сейчас на сайте:
Пользователей: 0
Отсутствуют.
Роботов: 2
Googlebot, Yandex
Гостей: 73
Всех: 75
ВНИМАНИЕ! Конкурс по программированию!
Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.
Информация к новости
- Просмотров: 932
- Автор: КазКиберГетик
No spam.php
Категория: WEB-программирование » PHP и MySQL » Статьи PHP/MySQL
No spam.php
Дмитрий Смирнов
...и снова о спаме. Кто о нем только не писал, и все писали, что это плохо и ай-яй-яй. Я не буду оригинальничать, и тоже скажу – это плохо. Это ай-яй-яй. Как бороться со спамерами со своей стороны, знает каждый – почтовые фильтры, всякие программы, отсылающие спамеру ответ, мол, адрес такой не найден и прочее... Базы данных спамеры составляют очень просто – натравливают специальные программы на различные сайты, в основном туда, где много email-адресов – форумы, гостевые, и прочее. Дальше – дело техники: программы просматривают html-код, ищут там mailto: и заносят почтовый адрес в свою базу. Бороться с этим можно самому, при публикации своего мыла – писать его, например, spectator[sobaka]mail.ru. Тот, кому надо, исправит адрес при написании письма сам.
Однако есть как минимум два способа, как при написании гостевых книг (или форумов) сделать защиту от спамеров. Первый – это не публиковать email вообще, а вместо его ставить ссылку на страницу с формой, с помощью которой желающий, не зная адреса, сможет отправить письмо соответствующему человеку. С одной стороны – удобно. Так сделано, например, на webscript.ru. С другой – не совсем, потому что многие предпочитают не пользоваться формами, а отправить письмо через любимый bat! Да и вообще, неизвестно еще куда отправит ваше письмо данная форма. Шучу, конечно, но недостатки этого метода, как и достоинства, очевидны.
«Но есть способ лучше!». Не абсолютно лучше, но в некоторых случаях явно лучше. Заключается он в том, чтобы публиковать ссылки на email адреса вот в таком виде:
click here. Желающие могут кликнуть и посмотреть, что это работает. Программы, «выдирающие» адреса, ничего на найдут.
Кликнули? Работает?
А теперь – как. Первая часть скрипта, которая заменяет в тексте адреса на такие ссылки простая, даже нет смысла ее приводить. Если что – то у меня в отзывах стоит примерно следующее:
$nospam= str_replace ('@','[dog]',$mail);
echo ('');
Вторая часть – это, собственно, скрипт nospam.php3. Состоит он ровно из двух строк:
$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:
Ту часть, которая выводит ссылки, пишем примерно вот так:
$nospam= str_replace ('@','[dog]',$mail);
echo ('
if (eregi ("MSIE 5", $HTTP_USER_AGENT)) {echo (' target=mail'); }
echo ('>');
Для того, чтобы если у человека IE 5 и выше – ссылки шли в этот пустой iframe...
Вроде работает... Только вот такой простое решение превратилось в какую-то бяку...
Вернуться
Комментариев: 0
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.




