ให้ถือว่าพร็อกซีฟรีทุกตัวเป็นโครงสร้างพื้นฐานที่ไม่น่าเชื่อถือ เพราะมันเป็นเช่นนั้นจริงๆ ผู้ให้บริการไม่เปิดเผยตัวตน โมเดลทางการเงินไม่ชัดเจน และซ็อกเก็ตเดียวกันอาจถูกหมุนเวียนผ่าน botnet เราเตอร์บ้านที่ถูกบุกรุก และ honeypot ของนักวิจัยภายในสัปดาห์เดียว ไม่มีสิ่งใดที่ทำให้พร็อกซีฟรีใช้ไม่ได้ — แต่มันทำให้เกิดชุดนิสัยเล็กๆ ที่ไม่สามารถต่อรองได้
การโจมตีทั่วไป
ภัยคุกคามไม่ได้น่าตื่นเต้นอะไร พวกมันเป็นประเภทที่น่าเบื่อที่ประสบความสำเร็จเพราะผู้ใช้ส่วนใหญ่ไม่ยอมป้องกันตัวเอง
การขโมยข้อมูลรับรองบน HTTP ธรรมดา หากคุณเข้าสู่ระบบอะไรก็ตามผ่าน http:// ผ่านพร็อกซีที่ไม่รู้จัก ผู้ให้บริการจะเห็นรหัสผ่าน ควรทำ tunnel TLS ผ่าน CONNECT เสมอ หรือใช้ SOCKS ไปยังปลายทางที่บังคับใช้ HTTPS เอง โฟลว์การเข้าสู่ระบบสมัยใหม่เป็น HTTPS-only บนเว็บไซต์หลัก แต่ intranet เก่า หน้า admin ของ IoT และ CMS รุ่นเก่าไม่ได้เป็นเช่นนั้น
การแทรกส่วนหัวและเนื้อหา พร็อกซี HTTP ที่เป็นอันตรายสามารถเขียนทับส่วนต่างๆ ของคำขอของคุณได้ตามอำเภอใจ: เปลี่ยนคุกกี้ สลับ referrer แทรกพารามิเตอร์ติดตาม หรือลบแคชส่วนหัว พร็อกซีเดียวกันสามารถแทรกเนื้อหาลงในการตอบกลับ — สคริปต์ลงใน HTML การเปลี่ยนเส้นทางลงใน JSON โฆษณาลงในหน้าคงที่ หากคุณอ่านการตอบกลับจากฝั่งเซิร์ฟเวอร์ผ่านพร็อกซี ให้ถือว่าถูกบุกรุกจนกว่าคุณจะสามารถตรวจสอบความสมบูรณ์จากเส้นทางที่เชื่อถือได้
การจี้ DNS ผ่าน SOCKS5 SOCKS5 สามารถแก้ไขชื่อโฮสต์ที่พร็อกซีได้ หากพร็อกซีโกหกเกี่ยวกับระเบียน DNS คุณจะเชื่อมต่อกับเซิร์ฟเวอร์ที่ผู้ให้บริการควบคุม ตั้งค่าไคลเอ็นต์ของคุณให้แก้ไขในเครื่องเมื่อเป็นไปได้: curl --resolve example.com:443:93.184.216.34 หรือในโค้ด ให้ส่ง IP แทนชื่อโฮสต์
การบันทึกทราฟฟิก แม้แต่พร็อกซีที่ตั้งใจดีก็อาจบันทึกทุก URL ที่คุณเรียก สำหรับโมเดลภัยคุกคามที่รวมถึง "URL ใดที่บุคคลนี้ร้องขอ" พร็อกซีสาธารณะทุกตัวเป็นเครื่องมือที่ผิด ใช้ Tor หรือ VPN แบบชำระเงินที่มีนโยบายไม่บันทึกข้อมูลที่เผยแพร่และประวัติการถูกหมายศาลโต้แย้ง
การทำให้ทรัพยากรของไคลเอ็นต์หมดไป พร็อกซีบางตัวจงใจจำกัดการเชื่อมต่อให้ช้าลง ส่งการตอบกลับขนาดใหญ่มาก หรือถือซ็อกเก็ตเปิดไว้โดยไม่ส่งข้อมูล ตั้งค่าขีดจำกัดขนาดการตอบกลับและหมดเวลาการเชื่อมต่อที่เข้มงวดที่ฝั่งไคลเอ็นต์ของคุณ
การป้องกัน ตามลำดับความสำคัญ
ส่งทุกอย่างภายใน TLS ผ่าน CONNECT หรือไปยังปลายทาง HTTPS ผ่าน SOCKS อย่าใช้ข้อมูลรับรองซ้ำหลังพร็อกซีสาธารณะที่คุณจะใช้ซ้ำที่อื่น ตรวจสอบใบรับรองอย่างเคร่งครัด — การปักหมุดผู้ออกใบรับรองนั้นเกินความจำเป็นสำหรับการใช้งานทั่วไป แต่การยอมรับ chain ใดๆ ก็ตามนั้นประมาท ตั้งค่า timeout สั้นๆ สำหรับการเชื่อมต่อและการอ่าน บันทึกการตอบกลับของพร็อกซีเพื่อการตรวจสอบทางนิติวิทยาศาสตร์เมื่อเวิร์กโหลดมีความสำคัญ หมุนเวียนบ่อยๆ พร็อกซีที่ทำงานเมื่อห้านาทีก่อนไม่จำเป็นต้องเป็นพร็อกซีเดียวกันในตอนนี้
พร็อกซีฟรีมีประโยชน์จริงๆ สำหรับอะไร
งานสามประเภทที่คุ้มค่ากับสัญญาณรบกวน การทดสอบความแตกต่างของเนื้อหาตามภูมิภาค: CDN ของคุณให้บริการหน้าที่ถูกต้องจากแฟรงก์เฟิร์ตเทียบกับเซาเปาโลหรือไม่? การขูดข้อมูลสาธารณะที่ไม่ต้องรับรองความถูกต้อง: ผลการค้นหาของเครื่องมือค้นหา, API สาธารณะที่ไม่มี rate limit ต่อ IP, เนื้อหาที่ถูกจัดทำดัชนีไว้ที่อื่นแล้ว การตรวจสอบว่าแอปพลิเคชันของคุณทำงานถูกต้องเมื่อ IP ขาออกไม่คุ้นเคยกับเป้าหมาย — มีประโยชน์สำหรับ QA ในระบบที่มีฮิวริสติกการตรวจจับการฉ้อโกงตาม IP
ใช้พร็อกซีเหล่านั้นสำหรับสิ่งนั้น ยอมรับอัตราความล้มเหลว อย่าใส่อะไรที่คุณไม่อยากเสียไว้ข้างหลังมัน