บรรทัดใหม่เกินมาหนึ่งบรรทัดอาจทำให้ TLS พังหลัง CONNECT
ตรวจสอบการจัดโครงสร้างส่วนหัว HTTP เมื่อตัวเชื่อมต่อพร็อกซีที่เขียนด้วยมือเปิดอุโมงค์และเกิดข้อผิดพลาดในการถอดรหัส TLS ทันที
เมื่อ CONNECT ตอบกลับ 200 และ TLS ถอดรหัสไม่ได้ทันที ให้ตรวจสอบไบต์ขอบเขตในตัวเชื่อมต่อก่อนเปลี่ยนใบรับรองหรือไซเฟอร์
ค่าอนุญาตที่สร้างขึ้นอาจลงท้ายด้วยบรรทัดใหม่อยู่แล้ว การเพิ่มจุดสิ้นสุดบรรทัดอีกจุดอาจทำให้ส่วนหัว HTTP จบเร็วเกินไป เหลือฟิลด์ Host ที่ตั้งใจไว้หรือข้อความธรรมดาอื่นไว้ข้างหลังคำขอ
คำขอ HTTP/1.1 CONNECT ขั้นต่ำใช้ CRLF ระหว่างบรรทัดและบรรทัดว่างที่ท้าย:
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"วางฟิลด์อนุญาตใด ๆ ไว้ก่อนบรรทัดว่างสุดท้ายนั้น โดยไม่มีการขึ้นบรรทัดใหม่ภายใน ใน Python "\n" แทนบรรทัดใหม่ ส่วนสตริงดิบที่มีแบ็กสแลชและตัวอักษร n ไม่แทน ตรวจสอบว่าไบต์ใดที่ตัวช่วยเข้ารหัสสร้างก่อนพยายามลบออก—ตัวช่วยรุ่นเก่าอาจเพิ่มการขึ้นบรรทัดใหม่
เมื่อ CONNECT สำเร็จ ไบต์ที่เหลือนั้นเป็นของโปรโตคอลอุโมงค์ ข้อความธรรมดาที่หลงทางอาจไปถึงคู่ที่คาดหวัง TLS สถานะสำเร็จไม่สามารถซ่อมไบต์ที่เข้าคิวแล้วหลังคำขอที่ผิดรูปแบบได้
ตรวจสอบขอบเขตการรับด้วย อ่านการตอบกลับของพร็อกซีให้ครบก่อนส่งซ็อกเก็ตให้ TLS จัดการการอ่านบางส่วนและเก็บทุกสิ่งที่อ่านเกินส่วนหัวไว้ การอ่านซ็อกเก็ตหนึ่งครั้งไม่จำเป็นต้องมีข้อความเต็มหนึ่งข้อความ
หากตัวแยกวิเคราะห์นี้เป็นของคุณ ให้เปรียบเทียบการแทนไบต์ที่ปกปิดกับไวยากรณ์ของสาย; เก็บความยาวและขอบเขตบรรทัดให้มองเห็นได้ขณะซ่อนรหัสผ่าน สำหรับแอปพลิเคชันที่ต้องการเพียงการเชื่อมต่อพร็อกซี ตัวเชื่อมต่อที่ได้รับการดูแลจะหลีกเลี่ยงความจำเป็นในการเป็นเจ้าของโค้ดจัดโครงสร้างนี้