8 คะแนน โดย xguru 2020-11-16 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อเปิดหน้าต่างใหม่ด้วย target="_blank" ได้มีการเปลี่ยนให้ทำงานเสมือนว่ามีการใช้ rel="noopener" บังคับ เพื่อหลีกเลี่ยงปัญหาด้านความปลอดภัยที่ทำให้เข้าถึงหน้าเว็บต้นทางได้

  • Safari ใช้งานสิ่งนี้แล้วตั้งแต่ปี 2018

  • นักพัฒนาของ MS Edge ได้เพิ่มฟีเจอร์นี้เข้าไปใน Chromium ทำให้ถูกนำไปใช้กับทุกเบราว์เซอร์ เช่น Edge/Chrome/Brave

  • มีการเพิ่มเข้าไปใน Chrome Canary แล้ว และมีแผนจะปล่อยอย่างเป็นทางการใน Chrome 88 ที่จะออกในเดือนมกราคม 2021

3 ความคิดเห็น

 
sduck4 2020-11-16

ดูเหมือนว่าถ้าต้องการให้หน้าต่างใหม่เข้าถึงหน้าต่างแม่ได้เหมือนเดิม ก็ต้องเพิ่มแอตทริบิวต์ rel="opener" ให้กับแท็ก a

สำหรับเว็บไซต์ที่ไม่ได้รับการบำรุงรักษา การใช้ฟีเจอร์นี้ก็น่าจะก่อปัญหาได้พอสมควร

 
dua804 2020-11-17

โดยส่วนตัวแล้ว เพื่อเชื่อมการทำงานระหว่างหน้าต่างแม่กับหน้าต่างลูก ผมเปิดป๊อปอัปแบบด้านล่างนี้

var childWin = window.open("", "childWin");

childWin.location.href = "https://news.hada.io";;

ถ้าทำแบบนี้ ถึงทั้งหน้าต่างแม่และหน้าต่างลูกจะเปลี่ยนหน้าไปแล้ว ก็ยังควบคุมกันและกันได้

ผมมักใช้วิธีนี้ตอนเปิดเพลเยอร์เป็นป๊อปอัป

 
xguru 2020-11-16

ประเด็นนี้คือเมื่อเปิดหน้าต่างใหม่ หาก JavaScript ของ URL ใหม่นั้นประสงค์ร้าย ก็อาจพาหน้าต้นทางไปยังที่อื่นได้ เช่น เว็บไซต์ฟิชชิง

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

ถ้าจะป้องกันเรื่องนี้ ก็ควรเพิ่ม rel="noopener" เมื่อใช้ target ตั้งแต่ตอนนี้เป็นต้นไป

  • GeekNews ไม่มีการเปิดหน้าต่างใหม่อยู่แล้ว จึงไม่ได้นำไปใช้ครับ ^^;