Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

HTML rel=noopener Attribute: ความปลอดภัยลิงก์ภายนอกที่สำคัญ

แอตทริบิวต์ rel="noopener" เป็นหนึ่งในแอตทริบิวต์ HTML ที่สำคัญที่สุดที่ควรรู้ เพราะมันส่งผลโดยตรงต่อ ความปลอดภัยลิงก์ภายนอก บนแองคอร์ลิงก์ที่ใช้แอตทริบิวต์ target="_blank"

target="_blank" ทำให้ลิงก์เปิดในแท็บเบราว์เซอร์ใหม่

นี่คือตัวอย่างลิงก์พร้อมแอตทริบิวต์ rel="noopener":

<a href="https://www.youtube.com" rel="noopener" target="_blank" >Link to youtube.com</a >

rel="noopener" ทำงานอย่างไร?

เมื่อคุณเพิ่ม rel="noopener" ให้กับลิงก์ภายนอกบนเว็บไซต์ของคุณ (พร้อม target="_blank") มันจะป้องกันไม่ให้เว็บไซต์ที่คุณลิงก์ไป ได้เข้าถึง เพจของคุณ ผ่านออบเจ็กต์ window (ผ่านพร็อพเพอร์ตี้ window.opener)

แปลว่า: หากเพจที่คุณอ้างอิงมีโค้ดอันตราย มันอาจใช้ช่องหลัง (window.opener) ไปยังเว็บไซต์ของคุณ เพื่อแฮกเบราว์เซอร์ของผู้ใช้ เช่น เปลี่ยนเส้นทางไปยังเว็บไซต์ฟิชชิงอันตรายที่ขโมยข้อมูลหรือติดตั้งมัลแวร์บนคอมพิวเตอร์ของพวกเขา

นี่คือเหตุผลที่ WordPress เพิ่มแอตทริบิวต์ rel="noopener" อัตโนมัติบนลิงก์ภายนอกทั้งหมดที่เปิดในแท็บเบราว์เซอร์ใหม่ (ใช้แอตทริบิวต์ target="_blank") — เพื่อเหตุผลด้านความปลอดภัย

แนะนำให้คุณทำเช่นเดียวกัน ไม่ว่าจะเป็นเว็บไซต์ประเภทไหน เพราะมีข้อได้เปรียบมากกว่าข้อเสียในการใช้มัน

rel="noopener" และ SEO

ข่าวดี rel="noopener" ไม่มีผลกระทบต่อ SEO ของคุณ

ข้อเสียของการใช้ noopener

ข้อเสียเดียวที่ฉันรู้คือ rel="noopener" ไม่มีการรองรับ Internet Explorer 11

ฉันไม่กังวลมากเกี่ยวกับนั้น เพราะ:

  1. IE11 เร็วๆ นี้จะเป็นประวัติศาสตร์ (Microsoft กำลังทิ้งมัน)
  2. หากผู้เยี่ยมชมเว็บของคุณใช้ IE11 พวกเขายังคงคลิกลิงก์ของคุณได้ แอตทริบิวต์ rel="noopener" เพียงแค่ไม่มีผล

นอกจากนี้ بصفتي เจ้าของเว็บไซต์ที่รับผิดชอบ คุณควรระมัดระวังเกี่ยวกับบุคคลที่คุณลิงก์ภายนอกไปอยู่แล้ว อย่าอ้างอิงผู้ใช้ไปยังเว็บไซต์ที่คุณไมไว้ใจ และปัญหาความปลอดภัยนี้จะใกล้เคียงกับไม่มีอยู่จริง

ทางเลือก 1: ใช้ "noreferrer"

หากคุณกังวลเกี่ยวกับผู้ใช้ Internet Explorer คุณสามารถเพิ่มค่าแอตทริบิวต์ noreferrer (ซึ่งรองรับ) ให้กับแองคอร์ลิงก์อย่างนี้:

<a href="https://www.youtube.com" rel="noopener noreferrer" target="_blank" >Link to youtube.com</a >

แอตทริบิวต์ "noreferrer" ป้องกันไม่ให้ผู้อ้างอิง (คุณ) ส่งข้อมูลไปยังเว็บไซต์เป้าหมาย (ที่คุณลิงก์ไป) โดยการลบข้อมูลผู้อ้างอิงจาก HTTP header

rel="noreferrer" จะมีผลกระทบต่อวิเคราะห์เว็บไซต์ เนื่องจากเว็บไซต์ที่คุณลิงก์ไปจะไม่รู้ว่าคุณลิงก์ไปที่นั่น ซึ่งอาจทำลายข้อตกลงทางธุรกิจเฉพาะที่คุณอาจมีกับพวกเขา

ดังนั้น โปรดทำตามพิจารณาของคุณเอง

rel="noreferrer" และ SEO

ขัดต่อสิ่งที่คนหลายคนเชื่อ rel="noreferrer" ไม่ส่งผลกระทบโดยตรงต่อ SEO ของคุณ อย่างน้อยไม่มีหลักฐานสนับสนุน แต่ตามที่กล่าวไว้ข้างต้น มันจะรบกวนการรวบรวมข้อมูล/วิเคราะห์ ซึ่งอาจทำลายคุณในทางอื่น/ทางอ้อม ขึ้นอยู่กับสถานการณ์เฉพาะของคุณ

อย่าเพิกเฉย noreferrer หรือ noopener กับแอตทริบิวต์ nofollow (ซึ่ง 100% จะส่งผลต่อ SEO)

ทางเลือก 2: ไม่ใช้ target="_blank"

คุณสามารถหยุดใช้แอตทริบิวต์ target="_blank" บนแองคอร์ลิงก์ของคุณ และคุณไม่ต้องกังวลเรื่องเหล่านี้

ไม่มี target="_blank" ทุกลิงก์บนเว็บไซต์ของคุณจะย้ายผู้ใช้ออกจากเว็บไซต์ของคุณไปยังเว็บไซต์ที่คุณลิงก์ไปทันทีที่พวกเขาคลิก

อย่างไรก็ตาม โปรดระวังว่า การไม่ใช้ target="_blank" อาจและน่าจะส่งผลกระทบต่อ SEO อย่างลบात्मक โดยเฉพาะอัตราบ้อนซ์ (bounce rate)

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

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

นี่ไม่ใช่หัวข้อขาวดำ และฉันเปิดรับมุมมองทางเลือก

แหล่งข้อมูล

อ่านเพิ่มเติมเกี่ยวกับปัญหาความปลอดภัยกับลิงก์ภายนอก