window.top のlocationを変更した場合のリファラー
frameやiframeで子フレームから親フレームをリダイレクトさせた場合のリファラーって子フレームのURLになるよね?
って思ってたが、自分のサイトでcontenteditableでユーザーがHTML入力できる箇所があって、
scriptの駆動は基本的にはできなくしてあるのだが、先日iframe経由でscriptを駆動させることができることに気づいた。
子フレームから親フレームをリダイレクトさせた場合のリファラーが親フレームのURLになるようだとCSRF的に危険性があるんで、認識が間違いないか実験してみた。
当初の認識どおり、子フレームから親フレームをリダイレクトさせた場合のリファラーは子フレームのURLになった。
Firefox Chromium Edgeで確認。
frameじゃなくてウインドウ(タブ)を開いてwindow.openerをリダイレクトした場合も確認してみたが、
その場合もscriptが実行される方のURLがリファラーになった。
というわけで、リファラー判別でのCSRF対策で問題が生じることは無さそう。