웹사이트(게시판)의 스팸 메시지와 스팸 댓글을 효과적으로 방지하는 방법은 무엇입니까? 이 기사에서는 자세한 솔루션 아이디어와 구현 단계를 제공합니다. 더 알고 싶은 친구는 다음을 참조하세요.
1. 양식 작성 페이지에서: <input type="hidden" value="<%=Now()%>">
제출 처리 페이지에서 제출 시간을 설정하세요.
다음과 같이 코드 코드를 복사합니다.
DateDiff("s",request.form("intime1"), Now()) < 5이면
response.write "<SCRIPT 언어=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 언어=javascript>alert('인증 코드를 올바르게 입력하세요!');</script>")
response.redirect("sign.asp")
종료하면
3. 원산지 결정
다음과 같이 코드 코드를 복사합니다.
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
'응답.쓰기(server_v1)
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
'응답.쓰기(server_v2)
mid(server_v1,8,len(server_v2))<>server_v2이면
Response.Write("<script 언어=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 언어=JavaScript>alert('오늘 메시지 수가 한도를 초과했습니다. 메시지가 금지됩니다!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
응답.끝
종료하면
5. IP 금지
다음과 같이 코드 코드를 복사합니다.
server_ip=Cstr(Request.ServerVariables("REMOTE_ADDR"))
만약 right(server_ip,8) = "194.165."
response.write "194.165 중복 제출은 금지됩니다."
응답.끝()
종료하면
1. 공개된 정보의 출처가 신뢰할 수 있는지 확인하세요. 자연인이 게시하는 한, 당사가 사용자에게 제공하는 제출 페이지를 통해 게시되어야 하며, 기계를 통해 게시된 경우에는 출처 정보가 없습니다.
'원산지 확인 및 외부 제출 금지'
다음과 같이 코드 코드를 복사합니다.
희미한 server_v1,server_v2
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
server_v1="" 또는 instr(server_v1,"/add.asp")<=0 또는 mid(server_v1,8,len(server_v2))<>server_v2인 경우
response.write "<SCRIPT 언어=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)에 제출하면 현재 시간을 가져와서 add.asp의 intime1 시간과 비교합니다. 시간 차이가 설정된 것보다 작습니다. 20초 등의 시간은 메시지를 금지하며 기계로 판단합니다. 코드는 다음과 같이 작성할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
DateDiff("s",request.form("intime1"), Now()) < 20이면
response.write "<SCRIPT 언어=JavaScript>alert('메시지 속도가 너무 빨라서 메시지를 남길 수 없습니다!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
응답.끝
종료하면
위의 세 가지 방법을 통해 로봇이 작성한 대부분의 스팸 댓글을 차단할 수 있습니다. 그래도 댓글이 많다면 아마도 인간의 육체가 남긴 댓글일 것입니다. 하지만 우리는 인간의 메시지를 어떻게 처리합니까? flymorn은 이를 처리하는 방법도 제공합니다.
방법은 매우 간단합니다. 사용자의 쿠키와 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 언어=JavaScript>alert('오늘 메시지 수가 한도를 초과했습니다. 메시지가 금지됩니다!');"
response.write "this.location.href='vbscript:history.back()';</SCRIPT>"
응답.끝
종료하면
%>
위의 제한을 통해 수동 게시도 어느 정도 제한되었습니다. 위의 방법은 쿠키 판단을 기반으로 합니다. 물론 사용자는 브라우저를 통해 쿠키를 삭제할 수 있지만 이로 인해 스팸 게시물을 게시하기가 더 어려워지고 기준이 높아집니다. 또한 게시자의 IP를 계속 확인하고 동일한 IP에서 게시물 수를 제한하여 목표를 달성할 수도 있습니다. 여기서는 더 이상의 확장이 없습니다. 게시를 제한하기 위해 IP를 결정하는 방법을 직접 설계할 수 있습니다. 이 기사에서 논의된 주제에 대한 의견이나 제안이 있는 경우, 함께 논의할 수 있도록 의견을 남겨주세요.