เนื้อหาแบบผสมหลัง VPN: แก้ที่ทรัพยากร ไม่ใช่ที่อุโมงค์
ไอคอนกุญแจอธิบายเอกสาร ไม่ใช่อธิบายสคริปต์ที่มันโหลด อ่านคอนโซล คงการบล็อกไว้ แก้การอ้างอิงที่ต้นทางของมัน แล้วทดสอบหน้าเว็บอีกครั้ง
หน้า HTTPS ที่โหลดสคริปต์ผ่าน HTTP จะสร้างสองคำขอด้วยระดับการป้องกันที่ต่างกัน และไอคอนกุญแจอธิบายเฉพาะคำขอแรกเท่านั้น อุโมงค์ไม่ได้เปลี่ยนสิ่งนี้ เพราะมันปกป้องตัวนำสัญญาณ ไม่ใช่สคีมาของทรัพยากรเอง เบราว์เซอร์กำลังบอกอยู่แล้วว่าคำขอใดล้มเหลว ถ้าคุณอ่านคอนโซลแทนที่จะดูแถบที่อยู่ การตรวจสามขั้นจะพาคุณจากหน้าที่ทำงานได้ครึ่งหนึ่งไปสู่การซ่อมจริง
อ่านคำขอ ไม่ใช่แถบที่อยู่
เอกสารที่ดึงมาผ่าน HTTPS สามารถอ้างอิงสคริปต์ ชีตสไตล์ ฟอนต์ หรือเฟรมผ่าน HTTP ธรรมดาได้ การอ้างอิงนั้นเป็นคำขอแยกต่างหาก และเป็นสิ่งที่เบราว์เซอร์กำลังบ่นถึง การป้องกันของเอกสารหลักไม่ได้ย้อนกลับเข้าไปในนั้น และอุโมงค์ที่ขนทั้งสองสตรีมก็ไม่ได้เปลี่ยนสคีมาใด ๆ ดังนั้นหน้าจึงสามารถปลอดภัยจริงและพังจริงได้ในเวลาเดียวกัน
การเรียกทรัพยากรว่าเป็นเพียงไฟล์ที่ถูกรวมไว้ไม่ได้ทำให้การแทนที่มันไม่เป็นอันตราย
หากเนื้อหาสคริปต์ที่ไม่ปลอดภัยถูกแก้ไขระหว่างทางแล้วถูกเรียกใช้ได้ มันก็เปลี่ยนพฤติกรรมของหน้าได้ ซึ่งเป็นปัญหาที่ใหญ่กว่าความผิดพลาดด้านหน้าตา รูปภาพมีความเสี่ยงเล็กกว่าแต่เป็นจริงเมื่อถูกแก้ไขระหว่างทาง ไอคอนกุญแจไม่ได้โกหกเรื่องใดเลย มันกำลังตอบคำถามที่แคบกว่าคำถามที่คุณถามมัน
รู้ว่าทรัพยากรใดถูกบล็อกและใดถูกยกระดับ
เบราว์เซอร์ไม่ได้ปฏิบัติต่อทรัพยากรทุกประเภทเหมือนกัน คำแนะนำเรื่องเนื้อหาแบบผสม แยกคำขอที่ถูกยกระดับเป็น HTTPS ออกจากคำขอที่ถูกบล็อกทั้งหมด โดยสคริปต์ ชีตสไตล์ และคำขอเชิงโปรแกรมอยู่ฝั่งที่ถูกบล็อก ขณะที่รูปภาพและสื่ออาจถูกยกระดับหรือติดธงแทน
ความแตกต่างนี้อธิบายรายงานที่สับสน หน้าที่มีสคริปต์ถูกบล็อกจะสูญเสียฟีเจอร์ไปทั้งหมด ขณะที่หน้าที่มีรูปภาพถูกยกระดับดูปกติและได้เปลี่ยนคำขอของตนอย่างเงียบ ๆ หมวดหมู่ที่มีการบันทึกไว้ยังมีข้อยกเว้น ดังนั้นอย่าสันนิษฐานว่าทุก URL ของประเภทหนึ่งจะถูกยกระดับสำเร็จ อ่านสิ่งที่คอนโซลบอกเกี่ยวกับคำขอเฉพาะแทนการให้เหตุผลจากนามสกุลไฟล์
วิดเจ็ตที่ถูกบล็อกไม่ใช่หลักฐานว่าอุโมงค์ล้มเหลว มันเป็นหลักฐานว่าเบราว์เซอร์ทำหน้าที่ของมัน
แก้การอ้างอิงที่ต้นทางของมัน
สำหรับเจ้าของไซต์ การซ่อมเป็นเรื่องของตำแหน่งที่ URL ที่ไม่ปลอดภัยถูกเขียนขึ้น ได้แก่ เทมเพลต ชีตสไตล์ สคริปต์ที่ประกอบ URL หรือคอมโพเนนต์ของบุคคลที่สาม การเปลี่ยนที่อยู่หน้าเว็บที่มองเห็นไม่ได้แตะต้องสิ่งเหล่านั้นเลย ค้นหาซอร์สสำหรับโฮสต์และแก้ทุกการอ้างอิง ไม่ใช่เพียงอันเดียวที่คอนโซลบังเอิญระบุ
จากนั้นยืนยันว่าทรัพยากรถูกให้บริการผ่าน HTTPS ด้วยตัวตนที่ถูกต้องจริง เพราะการสลับสคีมาไม่สามารถเสกบริการที่ไม่เคยเผยแพร่ที่นั่นได้
grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1ติดตามการเปลี่ยนเส้นทางด้วย เพราะการอ้างอิงที่ขึ้นต้นด้วย HTTPS ยังอาจไปลงเอยที่เส้นทางส่งมอบแบบข้อความธรรมดาได้ เมื่อสิ่งที่พึ่งพาไม่มีการส่งมอบที่ปลอดภัยเลย ให้ลบหรือแทนที่ผ่านกระบวนการเปลี่ยนแปลงปกติแทนการส่งวิธีเลี่ยง สำหรับผู้ใช้ ให้เปิดการป้องกันของเบราว์เซอร์ไว้และ รายงาน URL ของทรัพยากร ประเภทของมัน และข้อความในคอนโซลให้เจ้าของไซต์ อย่าเผยแพร่คำแนะนำที่บอกให้พนักงานอนุญาตเนื้อหาที่ไม่ปลอดภัยสำหรับหน้าใดหน้าหนึ่งเด็ดขาด เพราะข้อยกเว้นนั้นมีอายุยืนกว่าอุบัติการณ์ที่ทำให้เกิดมัน
ทดสอบหน้าซ้ำในแบบที่ผู้ใช้สัมผัสมัน
ฝึกฝนการดำเนินการที่โหลดทรัพยากรตามต้องการ ไม่ใช่แค่เอกสารแรก หน้าเว็บดึงโค้ด ข้อมูล และไฟล์ดาวน์โหลดเพิ่มเติมหลังกดปุ่ม และคำขอเหล่านั้นมักเป็นคำขอที่ไม่ปลอดภัย ยืนยันคำขอเฉพาะและพฤติกรรมที่มองเห็นได้ขณะยังเปิดการป้องกันอยู่ การทดสอบที่เริ่มด้วยโปรไฟล์เบราว์เซอร์ที่ผ่อนปรนไม่สามารถแสดงให้คุณเห็นว่าผู้ใช้ปกติเห็นอะไร
อุโมงค์ยังมีงานของตัวเอง และงานนั้นคือการเข้าถึงเครือข่าย ไม่ใช่ความสมบูรณ์ของหน้า
เมื่อทราฟฟิกออกจากปลายทางของอุโมงค์ การดึง HTTP ที่เหลืออยู่ไม่ได้รับอะไรจากตัวนำสัญญาณเลย แก้เส้นทางของทรัพยากรและคงการบังคับใช้ในเบราว์เซอร์ไว้ การมองชั้นการขนส่งอีกชั้นว่าเป็นการซ่อมสิ่งที่พึ่งพาไม่ปลอดภัยคือหนทางที่ทีมจะลงเอยด้วยสคริปต์ของฝ่ายช่วยเหลือที่ปิดการควบคุมซึ่งทำงานถูกต้อง