ผู้ใช้สนับสนุนรูปภาพในไซต์ HTTPS โดยไม่มีการเตือนเนื้อหาแบบผสม


9

ฉันมีฟอรัมที่ผู้ใช้สามารถโพสต์ภาพได้เช่นเดียวกับฟอรัมส่วนใหญ่ ฉันได้ตั้งค่า HTTPS ทั่วทั้งไซต์แล้ว แต่แน่นอนว่ารูปภาพภายนอกส่วนใหญ่เชื่อมโยงโดยใช้ HTTP ไม่ใช่ HTTPS ดังนั้นการโหลดฟอรัมผ่าน HTTPS จะแสดงคำเตือนเนื้อหาแบบผสม ฯลฯ

มีกลยุทธ์อะไรบ้างในการแก้ปัญหานี้ รูปภาพบางรูปมาจากเว็บไซต์ของฉันเองดังนั้นฉันจึงสามารถเขียน URL เหล่านั้นใหม่เพื่อใช้ HTTPS เนื่องจากฉันรู้ว่ามันจะใช้งานได้ แต่สำหรับ URL ภายนอกจำนวนมากไม่ทำงานกับ HTTPS ดังนั้นฉันจึงไม่สามารถเขียนแบบครอบคลุมได้

ฉันสามารถเขียนรูปภาพที่ไม่ปลอดภัยไปยังลิงก์แทนรูปภาพแบบอินไลน์ แต่นั่นไม่ได้ดูดีและอาจทำให้ผู้ใช้สับสน ทางออกที่ดีกว่า


2
คุณสามารถใช้camo ...
wb9688

2
Google ไม่ได้แก้ไขสิ่งนี้เพื่อค้นหารูปภาพ การค้นหารูปภาพคือ "ไม่ปลอดภัย:" i.imgur.com/8XVTQsi.png
Stephen Ostermiller

2
ดูเพิ่มเติมที่ StackOverflow: การจัดการกับเนื้อหา HTTP ในหน้า HTTPS
Stephen Ostermiller

1
ดีกว่าฉันไม่รู้และมันอาจทำงานได้โดยไม่มีกฎหมายลิขสิทธิ์ แต่วิธีแก้ปัญหาทางเทคนิคอย่างหนึ่งก็คือการทำสำเนาภาพและให้บริการจากโดเมนภายใต้การควบคุมของคุณผ่าน HTTPS ...
CVn

1
วิธี Mans แย่: เมื่อบันทึก / แก้ไขคุณสามารถใช้ตรรกะในการเขียนข้อมูลทั้งหมดที่มีวัตถุประสงค์เพื่อsrc="http://someimage.jpg"ให้โครงสร้างเชิงสัมพัทธ์src="//someimage.jpg"แทน ... หรือเพียงตรวจสอบมัน หากคุณต้องการล็อคสีเขียวที่เข้มงวด (ซึ่งภาพที่ไม่ปลอดภัยจะไม่ล็อคของคุณ) บังคับใช้ HSTS จากนั้นในอินเทอร์เฟซตัวแก้ไขโปรดสังเกตว่าขณะนี้รูปภาพต้องพร้อมใช้งานผ่าน HTTPS มิฉะนั้นจะไม่ปรากฏขึ้นเลย อย่าง "โอ๊ะโอคุณทำผิดพลาดเพื่อป้องกันการโจมตีและการโจมตี MITM สื่อทั้งหมดต้องใช้ HTTPS ย้อนกลับไปแก้ไขให้ถูกต้องหรือเลือกผู้ให้บริการรูปภาพอื่น"
dhaupin

คำตอบ:


1

ไม่สามารถมีแหล่งข้อมูลที่ไม่ปลอดภัยในหน้าเว็บที่ปลอดภัยและไม่ได้รับคำเตือนเนื้อหาแบบผสม

สำหรับตัวแทนผู้ใช้ที่สนับสนุนupgrade-insecure-requestsคำสั่งนั้นเป็นคำสั่งให้พยายามโหลดทรัพยากรผ่าน https หรือพยายามไม่สำเร็จ

ตัวแทนผู้ใช้รายอื่นจะไม่สนใจคำสั่งอย่างต่อเนื่องเพื่อโหลดทรัพยากรที่ไม่ปลอดภัย

นี่คือบทความเกี่ยวกับเว็บไซต์ Google Developers ที่พูดถึงตัวเลือกนี้และตัวเลือกอื่น ๆ


1

เพิ่งรู้ว่าฉันไม่เคยโพสต์โซลูชันของฉัน คำตอบที่ให้ไว้ในความคิดเห็นของสตีเฟนคือสิ่งที่แก้ไขได้สำหรับฉัน ในระยะสั้นฉันสร้างสคริปต์พร็อกซีที่ทำสิ่งต่อไปนี้:

  1. หากภาพนั้นเป็น https ให้ปล่อยไว้โดยลำพัง
  2. หากภาพนั้นเป็น http และมาจากไซต์ที่ทราบว่าสนับสนุน https (เช่นเว็บไซต์ของฉันเอง imgur.com ฯลฯ ) ให้เขียนใหม่เป็น https
  3. มิฉะนั้นถ้าภาพเป็น http ให้เขียนใหม่เพื่อใช้ http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

จากนั้นสคริปต์พร็อกซีจะดึงภาพ HTTP มาเก็บไว้ในเครื่องและส่งข้อมูลภาพออกมา เมื่อมีการร้องขอซ้ำ ๆ จะส่งออกข้อมูลแคชโดยตรง คำตอบ SO ที่เชื่อมโยงจะอธิบายแฮชการรักษาความปลอดภัยและรายละเอียดอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.