Как написать код для защиты идентификаторов электронной почты, отображаемых на странице через PHP, для защиты от спам-ботов - PullRequest
1 голос
/ 23 декабря 2009

Я показываю адреса электронной почты, хранящиеся в базе данных, на странице с использованием PHP. Адрес электронной почты на странице отображается следующим образом:

Электронная почта: test@example.com

Теперь адрес электронной почты, показанный на странице, должен использовать защиту от спама JS, чтобы скрыть его от спам-ботов.

Ответы [ 7 ]

1 голос
/ 23 декабря 2009

Вы можете попробовать использовать изображение (с помощью php-gd lib), написать на изображении, а затем показать это. (например, фейсбук)

1 голос
/ 23 декабря 2009

Попробуйте кодировщик электронной почты или используйте его в своем скрипте.

0 голосов
/ 24 декабря 2009

Отображение их в виде картинок является одним из вариантов. Также требуется, чтобы пользователь прошел тест CAPTCHA, прежде чем увидеть адрес электронной почты. Объедините эти два, и спам-боты, вероятно, никогда не получат адреса электронной почты.

0 голосов
/ 24 декабря 2009

Попробуйте http://recaptcha.net/learnmore.html Он может защитить адреса электронной почты с помощью капчи. Хотя я никогда не пробовал, но я использовал reCaptcha для формы входа, и с ней было легко работать.

0 голосов
/ 23 декабря 2009

PHPEnkoder (порт Энкодер Hivelogic )

"Enkoder, который работает путем случайного кодирования фрагмента текста и отправки в браузер самооценки Javascript, который сгенерирует оригинальный текст. Это работает двумя способами: во-первых, бот должен сначала иметь довольно полный Реализация Javascript; во-вторых, процесс декодирования может быть сделан произвольно вычислительно интенсивным. "

Это BSD-лицензия.

0 голосов
/ 23 декабря 2009

Я бы сказал, что вам лучше не беспокоиться; Спам-фильтры на стороне клиента в наши дни довольно хороши, и, прыгая через обручи, вы просто усложняете жизнь людям.

Тем не менее, лучший способ - преобразовать его в любой формат, который вы хотите, будь то изображение или простая подстановка строк:

joe@domain.com -> joeATdomainDOTcom

, а затем запишите адрес, помеченный каким-то идентификатором класса:

<a href="mailto:joeATdomainDOTcom" class="Email">
  <!-- image or link text here -->
</a>

Затем используйте Javascript для декодирования всех ссылок электронной почты и переписать атрибут href по реальному адресу. Большинство пауков, сканирующих адреса электронной почты, не будут выполнять Javascript, поэтому закодированный полуполезный адрес - это все, что они увидят.

Пользователи с включенным JS получат более или менее ожидаемую функциональность (кликабельные почтовые ссылки), в то время как пользователи без JS по крайней мере получат удобочитаемые адреса.

Худшее, что вы можете сделать, - это записать незашифрованные адреса и довериться JavaScript, чтобы скрыть их.

0 голосов
/ 23 декабря 2009

Вот несколько хороших ресурсов для просмотра:

Скрытие электронной почты от спам-ботов
Отображение электронных писем для пользователей, но не для спам-ботов.
Защита адресов электронной почты от ботов

Возможно, вы сможете найти больше, используя Поиск Google из StackOverflow.com

О, и есть те, кто спрашивает, стоит ли вам это делать:

Действительно ли сокрытие электронной почты усложняет задачу?
Вы скрываете электронную почту от спам-ботов на сайтах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...