【入門編】URLスキーム(javascript:)のフィルタリングと検証 – アプリケーションセキュリティ & 安全な開発防御ガイド

こんにちは。現場の最前線でコードと格闘し、時にインシデントの火消しに奔走しているエンジニアの皆さん、お疲れ様です。

今日は、Webセキュリティの「基本中の基本」でありながら、意外と見落としがちな「javascript:スキーム」の攻撃と対策についてお話しします。

「XSS(クロスサイトスクリプティング)」という言葉を聞くと、なんだか複雑で難しそうなイメージを持つかもしれません。でも大丈夫、まずは身近な「家の防犯」に例えて、その正体を暴いていきましょう。

—

1. なぜ「javascript:」が危険なのか?(泥棒の侵入経路)

皆さんの家には「玄関のドア」がありますよね。このドア(URL欄やリンク属性)には、本来「http://」や「https://」といった、信頼できる場所への行き先だけを書くはずです。

しかし、もし誰かが勝手にあなたの家の玄関に「このドアを開けたら、勝手に家の中の金庫を空けて良い」という魔法のスイッチを仕込んだらどうなるでしょう?

Webの世界でいう「javascript:」は、まさにその「魔法のスイッチ」です。

本来、リンクをクリックすると別のページに飛ぶはずなのに、そこに javascript:alert('ハック完了!') のようなコードが書かれていると、ブラウザは「ああ、これはページ移動ではなく、今すぐプログラムを実行しろってことね!」と勘違いして、あなたのWebサイト上で勝手に悪意ある命令を実行してしまいます。これが、XSSの恐ろしいところです。

—

2. 攻撃者が狙う「盲点」

多くの開発者は「HTMLのタグをエスケープすれば大丈夫!」と考えがちです。確かに、

securityintronationalをフォローする

コメント

タイトルとURLをコピーしました