hrefにディレクトリ相対パスを指定できる場合のXSS対策

テーマ、知りたいこと

aタグのhref属性値に対してXSS対策を検討するとき、特殊文字のエスケープに加えて「"http://"もしくは"https://"から始まっていることを確認する」というのが一般的に言われていると思います。
ただこのhref属性、http以外にも種々のリンクに対応しているはずですが、その中でも相対パスを指定するようなものを実装する場合、どういうバリデーションを組むのが一番いいでしょうか。

例えば該当ページと同じ階層にあるほかのファイルへの相対パスをユーザーが指定することを許可するようなページの場合、
「"./"から始まる入力値であることをバリデーションする」
という仕様が一番丸いのかなぁと足りない脳みそで考えてます。 (ディレクトリトラバーサル対策は別途必要ですが)

ファイルの相対パスをリンクとして指定できるような場合のXSS対策のバリデーションで一番妥当 (という表現が正しいか分かりませんが) な案って何になるかをお聞きしたいです。

背景、状況

私自身の理解の深化も兼ねて、社内アプリケーション開発者向けにXSS対策についての資料を作成しようとしています。開発者視点で一定納得感のあるXSS対策をまとめて共有したいと考えているところです。

コメントを投稿

0 コメント