Методы борьбы со спамом

 

 

 

 

 

 

   

 

 

 

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

<b>Обязательный пароль</b>
Если вы запретите комментировать анонимно, и потребуете создания учетной записи для получения привилегий, то в действительности получите два преимущества. Прежде всего, вы создаёте основное препятствие: теперь простой сценарий больше не сможет разместить сообщение на вашем веб-сайте . Теперь спамер должен создать учетную запись, научить свой сценарий, как авторизоваться на веб-сайте, передавать cookies и вести себя как реальный пользователь. Это само по себе остановит простых спамеров и убедить многих из них искать другие цели.

Вы также получите большую пользу в будущем. Многие методы, которые мы обсудим позже, рассчитаны на возможность отслеживания действий одного человека. Обязательная авторизация позволяет легко вести статистику в отношении данного пользователя и отслеживать то, что он делает на вашем сайте. Это может помочь вам определить, является ли данный пользователь спамером.

<b>Защита от подделки межсайтовых запросов</b>
Подделка межсайтовых запросов (CSRF - Cross Site Request Forgery) является распространенной уязвимостью на веб-сайтах и важным вопросом безопасности. Подобная защита не работает непосредственно со спамом, но помогает остановить автоматизированный спам.

Традиционное решение для CSRF требует хранить уникальный идентификатор в PHP сессии для пользователя. Затем, когда вы предоставляете форму для отправки пользователю, вы размещаете уникальный идентификатор в скрытом поле формы. Когда пользователь отправляет заполненную форму обратно, сервер проверяет, чтобы копия уникального идентификатора в сессии совпадала с тем, который передан вместе с формой. Тем самым вы требуете, чтобы пользователь загрузил форму для получения правильного значения скрытого поля.

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

<b>Обязательное поле User Agent</b>
Одна из самых простых мер, которую вы можете предпринять, это сделать обязательным заголовок User Agent. Все веб-браузеры включает строку User Agent в заголовках, отправляемых на веб-сервер. Однако во многих сценариях этой строке не уделяется достаточное внимание. В действительности PHP по умолчанию не устанавливает User Agent, и поэтому любой простой сценарий для рассылки спама, написанный на PHP, можно определить по данному упущению.

В PHP приложении, вы можете просто заблокировать все сообщения, которые не содержат значение для $_SERVER["HTTP_USER_AGENT"] и немедленно прекратить работу многих сценариев. Такое блокирование также может быть сделано с помощью брандмауэра или распределителя нагрузки.

<b>Скрытое поле CSS</b>
Другой метод выявить сценарий это оставить "приманку". Идея заключается в создании отдельного поля на форме, которое является настоящим и даже имеет атрибут name и служит для отправки обычной информации, такой как веб-сайт или расположение пользователя. Поле делается скрытым с помощью CSS. Например:

&lt;html>
&lt;head>
&lt;style>
.honeypot { display: none; }
&lt;/style>
&lt;/head>
&lt;body>
&lt;form method="POST" action="/submission">
&lt;p>Comment: &lt;textarea name="comment">&lt;/textarea>&lt;/p>
&lt;p class="honeypot">URL: &lt;input name="url" type="text" />&lt;/p>
&lt;p>&lt;input type="submit" />&lt;/p>
&lt;/form>
&lt;/body>
&lt;/html>

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

Следует отметить, что данная проверка не всегда доступна. У некоторых пользователей может быть отключен CSS или использоваться более старая версия браузера, на которой данное поле видно, и они попытаются его заполнить. Поэтому данный метод следует использовать только в качестве индикатора возможного спама, а не абсолютно точного показателя.

Если вы посмотрите на приведенный выше пример, то заметите, что сценарии могут быть достаточно умны, чтобы найти CSS, содержащий "display: none;". С связи с этим я видел много людей, которые использовали более творческие подходы для CSS и скрывали текст, изменяя Z слой, чтобы текст сливался с цветом фона. Существует много подобных методик, которые делают поле невидимым человеческому глазу и трудно обнаруживаемым для сценариев.

<b>Обязательное использование JavaScript</b>
Я не буду сосредотачиваться на данном подходе, поскольку это довольно жесткие меры, которые имеют серьезные последствия. Но ещё одним решением для построения формы для отправки данных является обязательное функционирование JavaScript. Большинство скриптов не будут иметь встроенных движков JavaScript и, следовательно, не смогут передать данные на сервер.

Примером данного подхода является создание &lt;form> на лету с применением DOM, используя редактируемый текст HTML через designMode DOM, абсолютно без использования форм.

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

<b>rel="nofollow"</b>
Одной из распространенных тактик для снижения преимущества спама является добавление атрибута rel = "nofollow" к любым ссылкам, которые размещаются на вашем сайте. Это концепция была представлена Google много лет назад, и большинство поисковых систем в настоящее время её придерживаются. Проще говоря, при добавлении этого атрибута в какой-либо тег &lt;a href> поисковые системы не будут присваивать дополнительный приоритет сайту, связанному по ссылке подобным образом.
Традиционно сайты, которые ссылаются на другой веб-сайт, повышают его статистику и значимость. Спамеры пытаются на этом заработать, внедряя ссылки на другие сайты.

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


Авторское право © Softnest.narod.ru

Назад

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hosted by uCoz