Как эффективно предотвратить спам-сообщения и спам-комментарии на сайтах (досках объявлений)? В этой статье представлены подробные идеи решения и этапы реализации. Друзья, которым нужна дополнительная информация, могут перейти к следующему шагу на странице заполнения формы : <input name=intime1 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>)
ответ.перенаправление(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)= тогда
ответ.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.
ответ.Конец()
конец, если
1. Определить, имеет ли опубликованная информация надежный источник. Если сообщение опубликовано физическим лицом, оно должно быть получено через страницу отправки, которую мы предоставляем пользователям, и должен быть источник, если оно опубликовано с помощью компьютера, информация об источнике не будет;
«Определить происхождение и запретить внешние материалы
Скопируйте код кода следующим образом:
тусклый сервер_v1, сервер_v2
server_v1 = Cstr(Request.ServerVariables(HTTP_REFERER))
server_v2 = Cstr(Request.ServerVariables(SERVER_NAME))
если server_v1= или instr(server_v1,/add.asp)<=0 или middle(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), мы записываем время и добавляем скрытый объект в форму отправки формы, например:
<имя ввода=intime1 тип=скрытое значение=<%=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)= тогда
ответ.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 для ограничения публикаций. Если у вас есть мнения или предложения по темам, обсуждаемым в этой статье, оставьте комментарий, чтобы мы могли обсудить это вместе.