[ワードプレス] TARGET=”_blank”とrel=”noopener noreferrer” [タブナビング]
WordPressで「TARGET="_blank"」付きのリンクを書いて投稿すると、勝手に「rel="noopener noreferrer"」が付加される。
その理由は「Tabnabbing」対策なのかな?
関連:リンクのへの rel=noopener 付与による Tabnabbing 対策
サイトAにあるBへのリンク(TARGET="_blank"付き)を開くと別タブでBが開くが、Bを閉じると残るのはAのハヅがCになっているという危険杉流モノである。
BにAをCに変えるような仕掛けが施されている(window.opener.location = http://●●●.com")。
仕掛けがAとは関係ないBにあるので、悪用されると非常に危険。
Aにコメント欄や掲示板がある場合、URLを貼り付けられることがあるだろう。
その場合は「TARGET="_blank"」付きのリンクとして表示するのが普通だが、そのリンク先に上記が仕組まれていると、A閲覧者をCに誘導できてしまう。
この遷移はB表示の際の裏に隠れているので、Cを閉じるまで気付かない。
もし、CがAとソックリな外観であったら…
フォデ、Aがログイン必要なサイトであったら…
一定時間でログアウトされるサイトも多いので、再度ログインを求められても不審には思わないハヅだ。
Aでログインしている利用者がBを開き、Bを閉じた後の画面でログインを求められても、不審に思わヅ入力してしまうだろう。
それがAではなく、C(偽サイト)であったら…(フィッシング詐欺)
てコト。
ヂゃあ、「rel="noopener noreferrer"」て何?となるが、
noopenerは上記の危険性(window.opener.location = http://●●●.com")を防ぐためのモノ。 ← 脆弱性ではない。
noreferrerはその名の通りReferrer(リファラ)を抑止するモノなので、サイト管理者が意図的にリンク先にリファラを渡す際は付けてはならない。
WordPressに勝手に「rel="noopener noreferrer"」が付加されるのを防ぐには、function.phpを変更する。
外観>テーマエディター>functions.php
が、投稿画面のボタンを使わずに手動でタグを書く場合は不可であり、また、自動付加される前の「TARGET="_blank"」を含む記事には付かない。
投稿後に置換プラグインである「Search Regex」で、一斉置換するとよいだろう(既に付加されてしまった過去記事も置換できる)。
リファラは残す場合
Search pattern(前):rel="noopener noreferrer"
Replace pattern(後):rel="noopener"
「Replace and Save」で一斉置換する前に、「Search」で件数を確認しよう。
件数が多い場合、鯖(サーバー)がパワーがショヴォゐと、エラーで置換できンサカゐ/堺wwwww
その場合は、phpMyAdminでDBにアクセス、REPLACE(カラム名,前,後)でドン!
当然、新規投稿や、置換が済んだ過去記事でも、記事を編集すると、再度付加されてしまう。
キミの任務は、勝手付加機能を探し出し、排除するコトだ(大佐)。
インプレス (2019-07-25)
売り上げランキング: 1,146
インプレス (2019-06-14)
売り上げランキング: 2,668
SBクリエイティブ
売り上げランキング: 74,988