Появилась идея, как можно бороться с почтовым спамом. Речь пойдет не об индивидуальной защите, а о новом софте, который будет являться надбавкой к существующим почтовым сервисам. Идея достаточно простая: хранить адресную книгу, а точнее ее копию, на сервере. А далее создается следующий механизм. Если на почтовый сервер приходит некоторое письмо для клиента, в адресной книге которого отправитель не заведен, то сервер может придержать письмо, направив по обратному адресу запрос на подтверждение отправки. Такое подтверждение может быть представлено, к примеру, в виде капчи (captcha). Запрос на подтверждение это обычное письмо в определенном формате, внутри которого будут поля, содержащие ссылку на картинку в капчей, адрес, куда отправить введенное POST-запросом и ссылка на страницу, на которой доступен ввод. Т.е. все что нужно, это перейти по ссылке и ввести изображенное на картинке.

Первые два поля сделаны для удобства пользователя. Если почтовая программа знакома с таким механизмом, то вместо перехода по ссылке можно будет ввести подтверждение непосредственно в программе. То же самое с web-сервисом. На странице работы с ящиком можно как-то через JavaScript делать периодическое обновление части страницы, куда будет загружаться список необходимых подтверждений (например, в IFrame).

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

Нужно на каждом почтовом сервере ввести сервис, в который будут перенаправляться все письма, требующие подтверждения отправки, описанного выше. Данный сервер будет по своей базе искать похожие письма, и при нахождении совпадения можно будет, с некоторой вероятностью, утверждать, что данное письмо является спамом. Причем, чем больше поступило аналогичных писем в этот сервер, тем выше эта вероятность. Почтовый сервер в итоге, получает информацию, что это спам и запрещает отправку такого письма. В результате, спамеры смогут отправить буквально считанное количество аналогичных писем, после чего отправка станет невозможной.

Но считанное количество писем будет только для одного сервера. Т.е. после того, как сервер отказал в отправке, спамер перейдет к “обработке” следующего сервера. Чтобы это стало невозможно, есть смысл реализовать обмен базами подозрительных писем между почтовыми серверами. Либо реализовать сеть специально выделенных для этой задачи серверов. Тогда при появлении нового почтового сервера, владельцам не нужно будет договариваться с другими серверами на предмет обмена. А в случае падения одного из серверов сети, можно будет легко переключиться на другой.

Естественно, для отсечения писем надо придумывать умный механизм, иначе часто отправляемые в такой ситуации предложения (например, “добавь меня в свою адресную книгу”), не содержащие спама, также не будут доходить. То есть критерием, в первую очередь, будет наличие ссылки, текста содержащего адрес и телефон, а также картинок, чей размер будет достаточен, чтобы на нем можно было написать координаты фирмы и прочую рекламу.

Если подтверждение прошло, то адрес отправителя должен добавляться во временную адресную книгу, из которой его можно перенести в действующую. Причем, если клиент отправил ответ, то такой перенос осуществляется автоматически. Если же перенос не был произведен, то через какое-то время адрес удаляется и, тому, кто пишет письмо, придется вновь вводить подтверждение.

В заключение несколько моментов.

1. Наряду с адресами в адресной книге можно также хранить домены. В этом случае будет разрешено принятие писем со всех адресов домена без теста на спам. Это удобно, если приходится, например, переписываться с некоторым предприятием, у которого собственный домен.

2. Чтобы не было возможности автоматического перебора программами содержимого капчи, после нескольких неправильных вводов, присылается новый запрос на подтверждение, с уже новой капчей.

3. Вместо капчи можно использовать вопрос, на который нужно ответить. Причем вопрос (или несколько) придумывает клиент и размещает его с одним или несколькими вариантами ответа на сервере. Это будет затруднением для спамеров, по сравнению с вводом уже готового ответа, изображенного на картинке. С другой стороны капча может также присутствовать в качестве альтернативы, если клиенту лень создавать вопрос.

Артем Глазков. Оригинал статьи: http://digs.alfaspace.net/topics/31