react/jsx-no-target-blank 正確性
功能說明
此規則旨在透過要求外部連結的 href 和表單動作使用 rel='noreferrer'
,並可選擇性地要求任何動態產生的連結 href 和表單動作使用 rel='noreferrer'
,來防止使用者產生的連結 href 和表單動作產生安全漏洞。
為何這是不好的?
當建立一個具有 a
標籤的 JSX 元素時,通常會希望使用 target='_blank'
屬性讓連結在新分頁中開啟。然而,單獨使用此屬性而不搭配 rel='noreferrer'
是一種嚴重的安全漏洞(詳情請參閱 noreferrer
文件 和 noopener
文件)。此規則要求您在 target='_blank'
屬性中加入 rel='noreferrer'
。
範例
jsx
/// correct
var Hello = <p target="_blank"></p>;
var Hello = <a target="_blank" rel="noreferrer" href="https://example.com"></a>;
var Hello = <a target="_blank" rel="noopener noreferrer" href="https://example.com"></a>;
var Hello = <a target="_blank" href="relative/path/in/the/host"></a>;
var Hello = <a target="_blank" href="/absolute/path/in/the/host"></a>;
var Hello = <a></a>;
/// incorrect
var Hello = <a target="_blank" href="https://example.com/"></a>;
var Hello = <a target="_blank" href={dynamicLink}></a>;