Как эффективно предотвратить спам-сообщения и спам-комментарии на сайтах (досках объявлений)? В этой статье представлены подробные идеи решения и этапы реализации. Друзья, которым нужна дополнительная информация, могут обратиться к следующему.
1. На странице заполнения формы: <input type="hidden" value="<%=Now()%>">
На странице обработки отправки установите время отправки.
Скопируйте код кода следующим образом:
Если DateDiff("s",request.form("intime1"), Now()) < 5, то
response.write "<SCRIPT Language=JavaScript>alert('Скорость вашего сообщения слишком высокая, оставлять сообщения запрещено!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
ответ.конец
конец, если
2. Код подтверждения
Скопируйте код кода следующим образом:
yz=cstr(request.Form("yz"))
yz1=cstr(сессия("yz1"))
если yz1<>yz, то
Response.Write("<script Language=javascript>alert('Пожалуйста, введите правильный код подтверждения!');</script>")
ответ.redirect("sign.asp")
конец, если
3. Определить происхождение
Скопируйте код кода следующим образом:
server_v1 = Cstr(Request.ServerVariables("HTTP_REFERER"))
'Response.Write(server_v1)
server_v2 = Cstr(Request.ServerVariables("SERVER_NAME"))
'Response.Write(server_v2)
если Mid(server_v1,8,len(server_v2))<>server_v2, то
Response.Write("<script Language=javascript>alert('Внешняя передача данных запрещена!');</script>")
ответ.конец
конец, если
4. Установите количество ежедневных отправок
Скопируйте код кода следующим образом:
'Когда пользователь отправляет один раз
если request.cookies("postnum")="" тогда
response.cookies("postnum")=1
response.cookies("postnum").expires=DateAdd("h", 24, Now())
еще
response.cookies("postnum")=request.cookies("postnum")+1
конец, если
если request.cookies("postnum") > 3, то
response.write "<SCRIPT Language=JavaScript>alert('Количество сообщений сегодня превысило лимит, сообщения запрещены!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
ответ.конец
конец, если
5. Запретить IP
Скопируйте код кода следующим образом:
server_ip=Cstr(Request.ServerVariables("REMOTE_ADDR"))
если правильно(server_ip,8) = "194.165", то
response.write "Перекрывающиеся отправки 194.165 запрещены."
ответ.Конец()
конец, если
1. Определить, имеет ли опубликованная информация надежный источник. Если сообщение публикуется физическим лицом, оно должно быть получено через страницу отправки, которую мы предоставляем пользователям, и должен быть источник, если оно опубликовано с помощью машины, исходная информация отсутствует;
«Определить происхождение и запретить внешние материалы
Скопируйте код кода следующим образом:
тусклый сервер_v1, сервер_v2
server_v1 = Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2 = Cstr(Request.ServerVariables("ИМЯ_СЕРВЕРА"))
если server_v1="" или instr(server_v1,"/add.asp")<=0 или Mid(server_v1,8,len(server_v2))<>server_v2, то
response.write "<SCRIPT Language=JavaScript>alert('Незаконный источник, внешняя передача запрещена!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
ответ.конец
конец, если
Обратите внимание, что /add.asp выше — это исходная страница страницы отправки. Конечно, машина также может подделать происхождение, с чем нужно бороться в сочетании со следующими методами.
2. Код подтверждения. Коды проверки всегда были эффективным методом борьбы с машинным спамом. Различные коды проверки имеют разные возможности обработки машинных сообщений. Чем сложнее код проверки, тем сложнее его взломать. Это требует выбора баланса между учетом чувств пользователя и обращением с машиной. Я не буду много говорить о том, как использовать код подтверждения. Поиск в Google и Baidu даст много информации.
3. Определить время подачи источника. Если время, проведенное на странице отправки, слишком короткое, например 20 секунд, как правило, если это физическое лицо, его время набора текста не обязательно должно быть таким коротким. Например, когда пользователь открывает страницу (например, add.asp), мы записываем время и добавляем скрытый объект в форму отправки формы, например:
<input type="hidden" value="<%=Now()%>">
Затем, когда пользователь пишет сообщение и отправляет его на определенную страницу обработки (например, addok.asp), мы получаем текущее время и сравниваем его со временем intime1 в add.asp, если разница во времени меньше установленного. время, например 20 секунд, сообщения запрещены и определяется как машина. Код можно написать так:
Скопируйте код кода следующим образом:
Если DateDiff("s",request.form("intime1"), Now()) < 20, то
response.write "<SCRIPT Language=JavaScript>alert('Скорость вашего сообщения слишком высокая, оставлять сообщения запрещено!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
ответ.конец
конец, если
С помощью трех вышеуказанных методов можно заблокировать большинство спам-комментариев, оставленных роботами. Если комментариев все еще остается много, они, вероятно, оставлены людьми. Но как нам поступить с человеческими сообщениями? Flymorn также предоставляет методы борьбы с этим.
Метод очень прост: он заключается в ограничении количества комментариев, оставленных одним и тем же пользователем, путем записи файлов cookie и IP-адреса пользователя. Например, в течение 24 часов в сутки одному и тому же пользователю разрешено публиковать только 5 сообщений. Мы можем достичь этого с помощью следующих методов.
Скопируйте код кода следующим образом:
<%'Когда пользователь отправляет сообщение один раз
если request.cookies("postnum")="" тогда
response.cookies("postnum")=1
response.cookies("postnum").expires=DateAdd("h", 24, Now())
еще
response.cookies("postnum")=request.cookies("postnum")+1
конец, если
если request.cookies("postnum") > 5, то
response.write "<SCRIPT Language=JavaScript>alert('Количество сообщений сегодня превысило лимит, сообщения запрещены!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
ответ.конец
конец, если
%>
Благодаря вышеуказанным ограничениям публикация вручную также в определенной степени ограничена. Вышеупомянутый метод основан на оценке файлов cookie. Конечно, пользователи могут удалять файлы cookie через браузер, но это затрудняет публикацию спам-сообщений и повышает порог. Мы также можем продолжить определение IP издателя и достичь своей цели, ограничив количество постов под одним IP. Дальнейшего расширения здесь не будет. Вы можете разработать свой собственный метод определения IP для ограничения публикаций. Если у вас есть мнения или предложения по темам, обсуждаемым в этой статье, оставьте комментарий, чтобы мы могли обсудить это вместе.