Hello there, ('ω')ノ
クロスサイトスクリプティング(XSS)とは?
入力した内容がそのまま画面に反映され、悪意あるスクリプト(JavaScript)が動いてしまう状態です。
たとえば:
① 名前欄に <script>alert(1)</script> と入力
② そのまま表示 → ポップアップが出る
→ これがそのままならXSS脆弱性があると判断します。
実際のチェック手順
① 入力欄の洗い出し
- 社内システムの「名前」「コメント」「検索窓」など
- POSTだけでなくGETパラメーター(URL)も対象
② テスト入力を試す
以下をコピーして使うだけでも十分チェック可能です。
- <script>alert(1)</script>
- " onmouseover="alert(1)
- <img src=x onerror=alert(1)>
注意:単純な < や " だけで壊れるケースもあるため、段階的に試すのがおすすめです。
③ 表示確認ポイント
- 入力した内容が画面にそのまま出る箇所
- エラーメッセージ表示欄
- 検索結果や確認画面
- 管理画面
もしそのまま「script」や「imgタグ」などが動作すれば、XSS脆弱性の可能性ありです。
④ ブラウザ開発者ツール併用
F12キー → ElementsタブでDOM構造を確認。
- 自分が入力した文字列がそのままHTML内に含まれているか?
- JavaScriptイベント属性(onload、onclickなど)が反映されていないか?
⑤ プロキシツール併用(任意)
Burp SuiteやOWASP ZAPを使って:
- POSTリクエストのボディを書き換え
- CookieやHTTPヘッダーにXSS用コードを挿入
自動スキャナ機能も使えますが、人間の目で確認する方が確実な場合もあります。
よくあるXSSポイントまとめ
✅ 入力フォーム(特にコメント欄や社内掲示板)
✅ URLパラメーター(idやqなど)
✅ エラーメッセージや確認ダイアログ
✅ 管理画面内の検索機能
チェックリストまとめ
- [ ] すべての入力欄にXSS用テスト文字列を入れてみたか?
- [ ] 画面表示後、F12でHTML構造を確認したか?
- [ ] エラーメッセージや検索結果も含めて確認したか?
- [ ] GET・POST両方で確認したか?
注意事項
- 本番環境では必ず事前許可を取ってから実施
- ログに影響を与える場合があるので実施時間に注意
- 発見した場合は開発担当へ即時連絡
Best regards, (^^ゞ