ฉันต้องการใช้กลไกต่อต้านการรวบรวมข้อมูลเพื่อปกป้องข้อมูลในเว็บไซต์ของฉัน หลังจากอ่านหัวข้อที่เกี่ยวข้องมากมายใน SO แล้ว ฉันจะเน้นที่ "บังคับใช้จาวาสคริปต์ที่ทำงานอยู่"
แผนของฉันคือ:
ใช้ฟังก์ชันพิเศษ F (เช่น MD5SUM) ในไฟล์จาวาสคริปต์ C
อินพุต: สตริงคุกกี้ของผู้ใช้ปัจจุบัน (คุกกี้จะเปลี่ยนไปในแต่ละคำตอบ)
เอาท์พุต: สตริงการตรวจสอบ V
ส่ง V พร้อมกับพารามิเตอร์อื่นๆ ไปยังอินเทอร์เฟซแบ็กเอนด์ที่ละเอียดอ่อนเพื่อขอข้อมูลอันมีค่า
- เซิร์ฟเวอร์แบ็กเอนด์มีฟังก์ชันตรวจสอบความถูกต้อง T เพื่อตรวจสอบว่า V ถูกต้องหรือไม่
ส่วนที่ยากคือวิธีทำให้ F สับสน หากโปรแกรมรวบรวมข้อมูลสามารถเข้าใจ F ได้ง่าย พวกเขาจะได้ V โดยไม่มี C และข้ามจาวาสคริปต์
อันที่จริงมี obfuscators js มากมาย แต่ฉันจะบรรลุเป้าหมายโดยการใช้ฟังก์ชันตัวสร้าง G ซึ่งไม่ปรากฏใน C
G(K) สร้าง F โดยที่ K เป็นจำนวนเต็มขนาดใหญ่ F ควรซับซ้อนเพียงพอ ดังนั้นผู้เขียนโปรแกรมรวบรวมข้อมูลต้องใช้เวลาหลายชั่วโมงในการทำความเข้าใจ F เมื่อพิจารณาจาก K' อีกตัว G(K') = F', F' ควรดูเหมือนฟังก์ชันใหม่ในบางขอบเขต และอีกครั้ง ผู้เขียนโปรแกรมรวบรวมข้อมูล ต้องใช้เวลาหลายชั่วโมงในการถอดรหัส
การใช้งาน G ที่เป็นไปได้อาจเป็นการแมปจากจำนวนเต็มไปยังวงจรดิจิทัลของลอจิกเกตที่เชื่อมต่อจำนวนมาก (เช่นเขาวงกต) การใช้ไวยากรณ์จาวาสคริปต์เพื่อแสดงเป็น F เนื่องจากต้องเรียกใช้ F ในจาวาสคริปต์ โปรแกรมรวบรวมข้อมูลจึงต้องเรียกใช้ PhantomJS นอกจากนี้ ฉันสามารถแทรกโหมดสลีปใน F เพื่อทำให้โปรแกรมรวบรวมข้อมูลช้าลง ในขณะที่ผู้ใช้ทั่วไปแทบจะไม่ตระหนักถึงความล่าช้า 50-100 มิลลิวินาที
ฉันรู้ว่ามีวิธีการหลายกลุ่มในการตรวจจับโปรแกรมรวบรวมข้อมูล พวกเขาจะถูกนำมาใช้ เรามาพูดคุยกันเฉพาะหัวข้อ "บังคับใช้จาวาสคริปต์ที่ทำงานอยู่" คุณช่วยให้คำแนะนำฉันหน่อยได้ไหม? มีวิธีแก้ไขที่ดีกว่านี้ไหม?