WordPress Snippet

ワードプレスをカスタマイズしよう

target blankの場合リンクのrel属性に noopener noreferrerが自動的にセットされる

WordPress4.7.4のTinyMCEエディタで、target=”_blank”が指定された場合に、rel=”noopener noreferrer” 属性が自動的に追加されるようになりました。

この属性を使っていない場合、開いたページにjavascriptがセットされていると、ページの書き換えができて、フィッシングなどに利用される可能性があるらしい。

WordPressには、他にもメニューなどで、target=”_blank”にすることもできるようになっていますが、現在のところ、エディター内での処理で、そういった部分については、属性が自動追加されることはありません。

気になる属性ではあります。

Raindropsテーマ1.470で、メニューなどの外部リンク(target=”_blank”)に、rel=”noopener noreferrer” を追加

トピック: リンクに「target=”_blank”」を設置時に起こる現象について « サポートフォーラム — WordPress

WordPress4.7.4 で target=”_blank” を指定したリンクで(ビジュアルモードで)、「リンクの挿入/編集」で「リンクを新しいタブで開く」にチェックを入れた場合

又は、テキストモードで

<a href="https://example.com" target="_blank">テキスト</a>

と入力し、ビジュアルモードに移動して、更新した場合

<a href="https://example.com" target="_blank" rel="nofollow noopener noreferrer">テキスト</a>

rel属性がつくようになった模様

noopenerとは

リンクのへの rel=noopener 付与による Tabnabbing 対策 | blog.jxck.io

target=”_blank” で開くリンクには rel=”noopener” をつける – Qiita

ブラウザサポート

Can I use… rel=noopener

Can I use… rel=noreferrer

フォーラム

This is a security fix to TinyMCE, which was updated in the 4.7.4 release.

See

https://www.tinymce.com/docs/changelog/#version450-november232016

https://github.com/tinymce/tinymce/issues/3177

https://www.tinymce.com/docs/configure/content-filtering/#allow_unsafe_link_target

It’s a security thing.

If, after reading the above, you want to disable the new setting, you can overide it with this in your functions.php or in a plugin. It is not recommended.

Topic: Remove rel= “noopener noreferrer” in wordpress 4.7.4 « WordPress.org Forums

紹介されている、rel属性を停止する方法

add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target');

function tinymce_allow_unsafe_link_target( $mceInit ) {
	$mceInit['allow_unsafe_link_target']= true;
	return $mceInit;
}

TwentySeventeenで動作確認 OKですが、セキュリティ設定のため変更はしないほうがよさそう。

Note:

TinyMCEによる属性の追加なので、head要素内に、以下のように リンク全般を_blankにしているような場合は、属性は追加されないので、個別対応が必要そうです。

<base target="_blank" />

メニューリンクで、 「リンクを新しいタブで開く」にチェックを入れている場合も同様に対策が必要そうです。

[emulsion_relate_posts]