Защитите электронную почту от харвестеров и спама - PullRequest
1 голос
/ 29 января 2012

Большинство сценариев защиты от спама, которые я видел, на самом деле являются сценариями javascript, которые скрывают письмо, кодируя его с помощью символьных сущностей. Но я думаю, что хорошему боту все еще будет легко его декодировать?

На моем сайте я использовал отдельный контроллер, который используется только для отправки почты. Страница получает зашифрованный параметр электронной почты через GET и дешифрует его, используя определенный закрытый ключ. Затем задает заголовок: mailto: $ email и перенаправляет пользователя туда, откуда он пришел.

Это эффективный способ защиты ссылок электронной почты или я наблюдаю за чем-то важным?

if ($this->uri->total_segments() >= 1) {
    $email = $this->decode($this->uri->uri_string());
    if ($email) {
         header("location: mailto: " . $email);
         if (isset($_SERVER['HTTP_REFERER'])) {
             redirect($_SERVER['HTTP_REFERER'], 'refresh');
         }
    }
}

1 Ответ

2 голосов
/ 29 января 2012

Это прекрасно работает, и это известная техника, например, http://www.maxi -pedia.com / предотвращение + электронная почта + адрес + сбор данных & http://csarven.ca/hiding-email-addresses#javascript.

Она все еще может быть декодированатак что это не на 100% эффективно.Кроме того, это может быть проблемой доступности - программы чтения с экрана не смогут подобрать ваш адрес электронной почты, поэтому он не подходит для всех сценариев.

...