จะป้องกันข้อความสแปมและความคิดเห็นสแปมบนเว็บไซต์ (กระดานข้อความ) ได้อย่างมีประสิทธิภาพได้อย่างไร? บทความนี้จะนำเสนอแนวคิดการแก้ปัญหาโดยละเอียดและขั้นตอนการดำเนินการ เพื่อนๆ ที่ต้องการทราบข้อมูลเพิ่มเติมสามารถดูได้จากข้อมูลต่อไปนี้
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>")
response.redirect("sign.asp")
สิ้นสุดถ้า
3. กำหนดที่มา
คัดลอกรหัสรหัสดังต่อไปนี้:
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
'การตอบสนองเขียน (server_v1)
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
'การตอบสนองเขียน (server_v2)
ถ้ากลาง (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, ตอนนี้())
อื่น
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. ตรวจสอบว่าข้อมูลที่เผยแพร่มีแหล่งที่เชื่อถือได้หรือไม่ ตราบใดที่มันถูกโพสต์โดยบุคคลธรรมดา มันจะต้องมาจากหน้าการส่งที่เราให้กับผู้ใช้ และจะต้องมีแหล่งที่มา หากถูกโพสต์โดยเครื่อง จะไม่มีแหล่งข้อมูล
'กำหนดที่มาและห้ามส่งจากภายนอก
คัดลอกรหัสรหัสดังต่อไปนี้:
สลัว 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 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 ยังมีวิธีจัดการกับมันอีกด้วย
วิธีการนั้นง่ายมาก ซึ่งก็คือจำกัดจำนวนความคิดเห็นที่โพสต์โดยผู้ใช้คนเดียวกันโดยการบันทึกคุกกี้และ IP ของผู้ใช้ ตัวอย่างเช่น ภายใน 24 ชั่วโมงต่อวัน ผู้ใช้คนเดียวกันจะได้รับอนุญาตให้โพสต์ข้อความได้เพียง 5 ข้อความเท่านั้น เราสามารถทำได้ด้วยวิธีการดังต่อไปนี้
คัดลอกรหัสรหัสดังต่อไปนี้:
<%'เมื่อผู้ใช้ส่งหนึ่งครั้ง
ถ้า request.cookies("postnum")="" แล้ว
response.cookies("postnum")=1
response.cookies("postnum").expires=DateAdd("h", 24, ตอนนี้())
อื่น
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>"
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
-
ด้วยข้อจำกัดข้างต้น การโพสต์ด้วยตนเองก็ถูกจำกัดในระดับหนึ่งเช่นกัน วิธีการข้างต้นขึ้นอยู่กับการตัดสินของคุกกี้ แน่นอนว่าผู้ใช้สามารถล้างคุกกี้ผ่านเบราว์เซอร์ได้ แต่จะทำให้การโพสต์โพสต์สแปมและเพิ่มเกณฑ์ได้ยากขึ้น นอกจากนี้เรายังสามารถกำหนด IP ของผู้จัดพิมพ์ต่อไปได้ และบรรลุเป้าหมายของเราด้วยการจำกัดจำนวนโพสต์ภายใต้ IP เดียวกัน จะไม่มีการขยายเพิ่มเติมที่นี่ คุณสามารถออกแบบวิธีการกำหนด IP ของคุณเองเพื่อจำกัดการโพสต์ได้ หากคุณมีความคิดเห็นหรือข้อเสนอแนะในหัวข้อที่กล่าวถึงในบทความนี้ โปรดแสดงความคิดเห็นเพื่อให้เราพูดคุยกัน