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

วิธีใช้แอตทริบิวต์ HTML rel=noopener (สำคัญสำหรับความปลอดภัย)

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.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

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

ดังนั้นให้ทำสิ่งนี้ตามดุลยพินิจของคุณเอง

rel="noreferrer" และ SEO

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

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

Alternative 2:don't use target="_blank"

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

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

อย่างไรก็ตาม ระวังอย่าใช้ target="_blank" มันสามารถและอาจส่งผลในทางลบต่อ SEO ของคุณ โดยเฉพาะอัตราตีกลับของคุณ

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

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

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

ทรัพยากร

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