漏洞存在場景:
NO1、使用target='_blank',且無rel="noopener"或rel="noopener noreferrer"屬性。
NO2、使用window.open,但第二個參數使用默認值(即以_blank或默認方式打開)。
這兩種使用情況都存在安全漏洞。
修復方法:
針對NO1的情況,在標簽上加上rel="noopener noreferrer"屬性即可
<a href='http://www.baidu.com' target='_blank' rel='noopener noreferrer'> 百度 </a>
針對NO2的情況:
錯誤寫法:
window.open('http://www.baidu.com')
或
window.open('http://www.baidu.com', '_blank')
正確寫法:
const win = window.open('http://www.baidu.com') win.opener = null