検索
日本語

利用者の入力に悪意あるスクリプトが入り込むXSS攻撃の仕組みと基本的な防御法(qiita.com)

startupxo 話し合う

書く言語: 韓国語書かれた言語で読む

要約 / 元記事を読む ↗

- XSSは、攻撃者が作った悪意あるスクリプトを他の利用者のブラウザで実行させる攻撃である。スクリプトはウェブページを動かす小さなプログラムで、原文によると、悪意あるリンクを開いたり汚染されたページを見たりするだけで、そのサイトの権限で動作することがあるという。 - 原文はXSSを反射型、格納型、DOM型に分けている。反射型と格納型は、サーバーが危険なHTMLを作って返す場合である。DOM型は、サーバーは正常なHTMLだけを送り、ブラウザのスクリプトがURLの値を画面に入れるときに生じるため、サーバー側のエスケープでは防ぎにくいとされている。 - 基本的な防御は、利用者の入力をinnerHTMLではなくtextContentで入れ、文字としてだけ表示することである。原文はsetHTML()などのSanitizer APIも紹介しており、web.devの資料を根拠に、Firefoxは148(2026年2月)から、ChromeとEdgeは146から使えるが、Safariは未対応と書いている。 - HttpOnlyのCookieは、スクリプトがCookieを読めないようにし、セッション情報の盗難を減らす。ただし、スクリプトの実行そのものは防げない。CSPは許可されていないスクリプトの実行を制限するが、外部サービスとの連携設定が面倒で、画面が崩れやすいというトレードオフがあると原文は述べている。
掲載元

Qiita ↗ / 掲載記事

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

O: フロントエンド開発者は、自分の画面でユーザー入力やURLの値をinnerHTMLに入れている箇所を探し、文字だけを表示すればよい場所ではtextContentに変えてみるとよいでしょう。 X: Sanitizer APIのsetHTML()は原文基準で2026年10月末時点のブラウザ対応状況に基づいているため、Safari非対応の環境ではDOMPurifyを使う必要があります。
書く言語: 韓国語

キーボード操作

JとK、または上下矢印キーで投稿を選び、Enterで開きます。

K ↑ / J ↓
前の投稿 / 次の投稿
Enter C
選んだ投稿の要約とコメントを開く
O
選んだ投稿の元記事を開く
/
検索
?
このヘルプを表示
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。