碎片時(shí)間學(xué)編程「292]:使用 target="_blank" 時(shí)如何保護(hù)您的用戶免受惡意網(wǎng)站的侵害

通常,當(dāng)從我們的網(wǎng)站鏈接到外部資源時(shí),我們會(huì)target="_blank"在新選項(xiàng)卡或窗口中打開鏈接頁(yè)面。但是我們應(yīng)該意識(shí)到一個(gè)安全風(fēng)險(xiǎn)。新標(biāo)簽通過(guò) Window.opener 獲得對(duì)鏈接頁(yè)面(即我們的網(wǎng)站)的有限訪問(wèn)權(quán)限,然后它可以使用它來(lái)更改鏈接頁(yè)面的 URL Window.opener.location(這稱為 tabnabbing)。
如果外部資源不可信、可能已被黑客入侵、域名多年來(lái)已更改所有者等,這可能會(huì)成為一個(gè)問(wèn)題。無(wú)法保證第三方資源,無(wú)論多么可信,實(shí)際上可以被我們信任用戶的安全以及作為開發(fā)人員的我們應(yīng)該始終意識(shí)到這種風(fēng)險(xiǎn)。
為了防止在新選項(xiàng)卡中打開的鏈接造成任何麻煩,我們應(yīng)該始終將屬性rel="noopener noreferrer"添加到我們所有的target="_blank"的鏈接網(wǎng)址。
更多內(nèi)容請(qǐng)?jiān)L問(wèn)我的網(wǎng)站:https://www.icoderoad.com
標(biāo)簽: