การเชื่อมต่อ HTTPS“ ไม่ปลอดภัย” เนื่องจากรูปภาพ


14

ฉันกำลังทำงานบนเว็บไซต์และฉันได้ติดตั้งใบรับรอง SSL ของฉันเรียบร้อยแล้ว

ตัวตรวจสอบ GeoTrust SSL / TLS ยืนยันว่าห่วงโซ่ใบรับรอง (รวมถึง CA) ได้รับการติดตั้งอย่างเหมาะสม ทุกอย่างดูดีบน Chrome แต่กุญแจของฉันไม่เป็นสีเขียวและใน Firefox มันระบุว่าเว็บไซต์นั้นไม่ปลอดภัยเพราะมีองค์ประกอบที่ไม่ได้เข้ารหัสไว้

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

คำตอบ:


32

แท็กรูปภาพของคุณต้องมีลักษณะดังนี้:

<img src="http://example.com/images/image.jpg">

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

คุณสามารถใช้สิ่งใดสิ่งหนึ่งต่อไปนี้เพื่อแสดงรูปภาพอย่างปลอดภัยแทน:

  • ลิงก์ไปยังhttpsอย่างชัดเจน:<img src="https://example.com/images/image.jpg">
  • ใช้การเชื่อมโยงแบบสัมพันธ์กับภาพในโดเมนของคุณ: <img src="/images/image.jpg">
  • ใช้การเชื่อมโยงโปรโตคอลที่เกี่ยวข้องเพื่อใช้ภาพจากโดเมนอื่น: <img src="//example.com/images/image.jpg">

ชัดเจนhttpsจะให้บริการภาพอย่างปลอดภัยเสมอ (แม้ว่าหน้าจะไม่ได้ให้บริการอย่างปลอดภัย) ในขณะที่การเชื่อมโยงญาติจะให้บริการภาพอย่างปลอดภัยเฉพาะในกรณีที่ให้บริการหน้าอย่างปลอดภัย

ใน Firefox และ chrome คุณสามารถคลิกที่กุญแจและรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหา หลังจากทำเช่นนี้แล้วนี่คือภาพหน้าจอจาก Firefox ที่แสดงรายการภาพทั้งหมดในหน้าเว็บ ง่ายในการสแกนรายการและดูว่ารายการใดhttp:


2
"ผู้โจมตีสามารถเปลี่ยนภาพในระหว่างทางและเปลี่ยนรูปลักษณ์ที่ปลอดภัยของผู้ใช้ของคุณ" - หรือแม้แต่เรียกจุดอ่อนในโหมดแสดงภาพ
John Dvorak

2
และจี้คุกกี้ซึ่งอาจรวมถึงโทเค็นการเข้าถึง
Darkhogg

มันฟังดูเป็นเรื่องที่ควรทำ ขอบคุณที่ฉันได้รับกุญแจสีเขียวของฉัน แต่เพื่อนบอกว่าการเข้ารหัสภาพอาจทำให้หน้าเว็บช้าลง นี่เป็นปัญหาในกรณีของฉันหรือไม่?
mti_

3
มีค่าใช้จ่ายในการเข้ารหัสอย่างแน่นอนอย่างไรก็ตามโดยปกติแล้วจะไม่เกิน 10% ของวันนี้ โทษประสิทธิภาพนั้น (แม้สำหรับภาพ) คือราคาที่คุณต้องจ่ายสำหรับไซต์ที่ปลอดภัย
Stephen Ostermiller

whynopadlock.comเป็นเครื่องมือที่มีประโยชน์ในการระบุทรัพยากรที่ไม่ปลอดภัยอย่างรวดเร็วที่ URL ที่ระบุ
วิลล์

5

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

คุณต้องการค้นหาลิงก์เหล่านี้และเปลี่ยนเป็น:

  1. ลิงก์ที่เกี่ยวข้อง:เช่น/wp-content/yourtheme/images/image1.jpg
  2. หรือวาง // ที่ด้านหน้าของโดเมนเช่นเดียวกับในส่วน//example.com/wp-content/wp-content/yourtheme/images/image1.jpg นี้จะให้บริการทรัพยากรเหล่านี้ผ่าน http หรือ https ตามคำขอใด ๆ ก็ตาม

ทั้งใน Chrome และ Firefox คุณสามารถคลิกไอคอนรูปกุญแจจากนั้นคลิกผ่านเพื่อดูรายการลิงก์ที่ไม่ปลอดภัยที่ละเมิด และถ้าคุณไม่สามารถมองเห็นภาพใด ๆ หรือแหล่งข้อมูลอื่น ๆ ไฮไลต์ในเบราว์เซอร์ แต่ยังคงได้รับข้อผิดพลาดที่คุณอาจพบว่ามีการโทรจาวาสคริปต์ที่อ้างอิงการเชื่อมโยงอย่างผ่านทาง http


2
//ที่จุดเริ่มต้นคือมาตรฐานnōnและเบราว์เซอร์เช่น Lynx จะบ่น
mirabilos

2
@mirabilos RFC 1808เป็นมาตรฐานสำหรับ URL และระบุการเชื่อมโยงโปรโตคอล (เริ่มต้นด้วย//) ในส่วน 2.4.3 มาตรฐานนี้มีอายุ 15 ปีและมีการใช้งานโดยเบราว์เซอร์หลักทั้งหมด รวมถึง Lynx
Stephen Ostermiller

#mirabilos ตรวจสอบลิงก์ที่เก็บ Google ที่คุณแนะนำ คุณจะพบว่า Google ใช้งานมาหลายปีแล้ว
garth

1

มันเป็นพื้นฐานจริงๆ เมื่อคุณสร้างเว็บไซต์ที่ให้บริการผ่าน SSL (https) การอ้างอิงใด ๆ ในรหัสของคุณที่ไม่ได้นำหน้าด้วย https จะเป็นการเตือนความปลอดภัย - นอกเหนือจากลิงก์ โปรดทราบว่าเบราว์เซอร์ส่วนใหญ่ (ทั้งหมด) จะเชื่อมโยงกับลิงก์เริ่มต้นไปยัง http ดังนั้นหากคุณต้องการอ้างอิง /uploads/12/5/img.jpg หรือ /js/jquery.js โปรโตคอลการโอนจะเริ่มต้นที่ http - ซึ่งน่ารำคาญจริงๆ

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


10
"เบราว์เซอร์ส่วนใหญ่ (ทั้งหมด) เริ่มต้นด้วยลิงก์ที่เชื่อมโยงไปยัง http" Err อะไรนะ? แน่นอนว่าเบราว์เซอร์ทั้งหมดจะใช้โปรโตคอลปัจจุบันหากคุณไม่ได้ระบุใหม่
Oleg V. Volkov

5
โอเล็กพูดถูก นั่นไม่ใช่ "น่ารำคาญ": มันผิดทั้งหมด
การแข่งขัน Lightness กับ Monica

3
นี่เป็นสิ่งที่ผิดอย่างสิ้นเชิง ไม่ต้องสนใจคำตอบนี้
martijnve

@martijnve - คำตอบของฉันผิดอย่างไร
blankip

4
@blankip ดูความคิดเห็น oleg V. Volkovs การอ้างอิงใด ๆ ที่มี http นั้นไม่ถูกต้อง คนอื่น ๆ ทั้งหมดเป็นเรื่องปกติ (สัมพันธ์กับโปรโตคอล, โดเมนสัมพันธ์, พา ธ สัมพันธ์) และคุณควรใช้ลิงก์ที่เกี่ยวข้องในเกือบทุกกรณีอยู่แล้ว
martijnve

1

หากคำแนะนำเหล่านี้ไม่ช่วยเมื่อไม่สามารถแสดงภาพหลังจากที่คุณเปิดใช้งาน SSL บนหน้าเว็บของคุณให้ตรวจสอบในกรณีที่การตั้งค่าฮอตลิงก์ของ cPanel สำหรับลิงก์ซึ่งอยู่ภายใต้หัวข้อความปลอดภัยของ cPanel เป็นไปได้มากว่าในการตั้งค่านี้คุณมีสิ่งต่อไปนี้http://example.comและhttp://www.example.comเปิดใช้งานเพื่ออนุญาตให้เข้าถึงรูปภาพในขณะที่httpsไม่ได้เปิดใช้งานเวอร์ชันเหล่านี้


-4

ตรวจสอบการกำหนดค่าโปรโตคอล url ที่ปลอดภัยของคุณใน cms / wordpress / magento หรือแพลตฟอร์มอื่น ๆ ที่คุณใช้งาน คุณยังสามารถแชร์แท็กภาพของคุณได้ แต่ภาพ img src พื้นฐานไม่ได้มีข้อผิดพลาดแบบนั้น

โครงสร้างแท็กรูปภาพมีความสำคัญ แต่จุดเน้นของคำถามของคุณฉันคิดว่ามันเกี่ยวข้องกับ "ใบรับรอง" SSL ติดตั้งบนเว็บไซต์ของคุณ มีเรื่องส่วนตัวเกิดขึ้นกับฉันด้วย "Standard GoDaddy SSL Certificate

คุณจะเห็นไอคอนคำเตือนใน Firefox (โดยเฉพาะ) แถบการค้นหา URL โดยบอกว่าอาจมีภาพหรือองค์ประกอบที่ไม่ปลอดภัยในเว็บไซต์ของคุณ เท่าที่ฉันรู้มันเป็นเพียงเรื่องของวิธีการที่ firefox ประมวลผลข้อมูลเกี่ยวกับใบรับรองหรือข้อมูลที่รวมอยู่ในนั้น สิ่งนี้จะไม่เกิดขึ้นในซาฟารีโครเมี่ยมหรือเบราว์เซอร์อื่น ๆ ฉันพบวิธีแก้ปัญหานี้ติดตั้งแทน "Standard SSL" เป็น "ใบรับรอง SSL แบบพรีเมียมหรือใบรับรองการตรวจสอบเพิ่มเติมแบบขยาย EVC " ซึ่งมีข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับ บริษัท เว็บไซต์ คุณจะได้รับแถบ url ที่ปลอดภัยสำหรับกุญแจสีเขียว

อย่างไรก็ตามใบรับรอง SSL ระดับพรีเมียมอาจมีราคาแพงกว่าเล็กน้อยประมาณ $ 150 - $ 200 USD ต่อปี

ป้อนคำอธิบายรูปภาพที่นี่


5
สิ่งนี้ไม่เป็นความจริงเพราะ: 1) <img src = "... "> แท็กสามารถทำให้เกิดข้อผิดพลาดประเภทนี้ได้แน่นอนถ้าคุณป้อน URL HTTP (ตรงข้ามกับ URL HTTPS) และ 2) ประเภทของเอกสารรับรองหรือ วิธีการประมวลผลไม่มีอะไรเกี่ยวข้องกับเรื่องนี้อย่างแน่นอน
fNek

ฉันใช้สำหรับแท็กสื่อโกลบอลของ img src เช่น {{media url = "path / to / image.jpg"}} โดยมีหรือไม่มีโปรโตคอล ssl และฉันจะไม่เกิดข้อผิดพลาด โดยวิธีการที่ฉันชี้ไปที่ข้อผิดพลาด ssl ของ Stephen แสดงขึ้น ความนับถือ.
Gaio RoOts

3
หากคุณใช้ URL สัมพัทธ์จะไม่มีปัญหาเนื่องจากเป็นญาติ โปรดอ่านคำตอบอื่น ๆ ฉันรู้ว่าคุณกำลังอ้างถึงข้อผิดพลาดของสตีเฟ่น ประเภทใบรับรองยังไม่มีอะไรเกี่ยวข้องกับมัน
fNek

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