Webセキュリティでは、短いコード例をコピーするより、守る対象と信頼境界を確認し、利用するフレームワークや認証基盤の安全な機能を正しく設定することが重要です。
OWASP Top 10は、Webアプリケーションの重大なリスクについて共通認識を作るための**awareness document(注意喚起資料)**です。10項目をチェックすれば安全が完成する規格や、実装手順の完全な一覧ではありません。具体的な要件はOWASP ASVS、実装判断はOWASP Cheat Sheet Seriesや利用製品の公式資料で確認します。

OWASP Top 10:2025を索引として使う
| カテゴリ | 最初に確認すること |
|---|---|
| A01 Broken Access Control | すべてのresourceとactionをサーバー側で認可しているか |
| A02 Security Misconfiguration | 本番設定、不要機能、error表示、security headerを管理しているか |
| A03 Software Supply Chain Failures | dependency、build、artifact、更新元を追跡・検証できるか |
| A04 Cryptographic Failures | 守るdata、鍵管理、転送時・保存時の保護を決めているか |
| A05 Injection | SQL、HTML、shellなど出力先に合う安全なAPIを使っているか |
| A06 Insecure Design | abuse caseと失敗時の動作を設計・レビューしたか |
| A07 Authentication Failures | 実績ある認証基盤を使い、sessionと回復手順を保護しているか |
| A08 Software or Data Integrity Failures | update、CI/CD、serialization、artifactの完全性を検証しているか |
| A09 Security Logging and Alerting Failures | 検知後に行動できるlog、alert、対応手順があるか |
| A10 Mishandling of Exceptional Conditions | timeout、resource枯渇、例外時に安全側へ失敗するか |
2021版とはカテゴリ名と順位が変わっています。たとえばInjectionはA05となり、A10はSSRF単独ではなく例外条件の不適切な処理を扱います。記事内の番号だけを暗記せず、参照時点の公式版を確認します。
1. 認証の前に認可境界を見る
認証は「誰か」を確認し、認可は「その主体がこのresourceへこの操作をしてよいか」を確認します。有効なsessionやtokenがあっても、別利用者の注文を読めるとは限りません。
認可はUIでボタンを隠すだけでなく、APIやデータアクセス層で毎回確認します。URL上のID、role、所有者、組織、状態遷移を入力として扱い、拒否を既定にします。管理画面だけでなく、内部API、batch、file downloadも同じ対象です。
2. 入力・処理・出力を分ける
「すべてsanitizeする」という一つの処理では、SQL InjectionとXSSの両方を安全にできません。
- 入力検証: 型、長さ、許可値、業務上の範囲をサーバー側で確認する
- SQL: 文字列連結ではなくparameterized queryを使う
- HTMLなどへの出力: 出力contextに合うencodingや安全なDOM APIを使う
- HTMLを許可する入力: 実績あるsanitizerを、許可する要素・属性を決めて使う
- OS command: 可能ならcommand実行自体を避け、安全な専用APIを使う
フレームワークの自動escapeを無効にするAPIや、生HTML挿入機能を使う箇所は特にレビューします。Content Security Policyは被害を抑える層になりますが、安全な出力処理の代わりではありません。
3. 認証・session・CSRFは一組で設計する
パスワードのhash、MFA、login試行制御、account recovery、session固定対策、logout、期限、Cookie属性は相互に関係します。独自の認証方式や暗号処理を作らず、保守されているIdP、framework、libraryを優先します。
パスワードへ「大文字・小文字・数字・記号を必須」とするだけでは十分ではありません。長さ、漏えい済みpasswordの拒否、MFA、安全な回復手順、利用するpassword hashの公式推奨を合わせて確認します。
Cookie sessionではSecure、HttpOnly、適切なSameSiteを検討します。ただしHttpOnlyはXSSそのものを防がず、SameSiteだけで全CSRF要件が完了するわけでもありません。
- セッションとCSRF対策の実装判断
- OWASP Authentication Cheat Sheet
- OWASP Password Storage Cheat Sheet
- OWASP Session Management Cheat Sheet
4. 暗号化より先にdataと鍵の寿命を決める
保存しなくてよい機密dataは保存しないことが第一です。保存が必要なら、誰が復号できるか、鍵をdataと分離できるか、rotation・失効・backup・監査をどうするかを決めます。
暗号algorithm名だけを選んでも、安全なkey managementにはなりません。cloud KMSや保守されたlibraryを使い、独自の暗号文形式を設計しないことを基本にします。passwordは復号可能な暗号化ではなく、password保存用の方式でhash化します。
- APIキー・パスワード・個人情報を漏らさない基本
- OWASP Cryptographic Storage Cheat Sheet
- OWASP Secrets Management Cheat Sheet
5. 外向き通信と例外条件を脅威として扱う
利用者が指定したURLをサーバーから取得する機能は、SSRFの入口になります。hostnameの文字列比較やIPv4 private rangeの自作判定だけでは、redirect、DNS rebinding、IPv6、link-local、cloud metadataなどを扱い切れません。
送信先を利用者に自由指定させない設計を優先し、必要ならnetwork egressとapplicationの両方でallowlistを構成します。timeout、response size、redirect、protocol、名前解決後の宛先も、利用するHTTP clientと基盤の仕様に沿って制限します。
例外時には、stack traceやsecretを利用者へ返さず、途中まで成功した状態、queue詰まり、disk不足、依存先timeoutでも権限や整合性を壊さないようにします。
6. dependencyと設定を継続管理する
scannerの警告は、影響するversion・利用経路・修正版・互換性を確認し、更新後にtestして解消します。audit fixのような自動変更を、内容を確認せず本番へ入れません。
lockfile、artifactの取得元、CI権限、署名やprovenance、不要なdependency、保守終了versionも確認します。development dependencyでもbuild時に実行されるcodeはsupply chainの対象です。
security headerは用途ごとに選び、実際のresponseで確認します。CSP、HSTS、X-Content-Type-Optionsなどの設定はdeployment構成やsubdomainへの影響を理解して段階的に導入します。
- セキュリティヘッダー実装ガイド
- OWASP Vulnerable Dependency Management Cheat Sheet
- OWASP Software Supply Chain Security Cheat Sheet
7. 検知と対応までを完成条件にする
認証失敗、認可拒否、管理操作、設定変更など、対応判断に必要なeventを記録します。一方、password、access token、Cookie、Authorization header、不要な個人情報をlogへ残しません。
alertには担当者、優先度、最初の確認手順、escalation先を結び付けます。収集するだけでなく、検知から封じ込め、復旧、再発防止まで訓練します。
まとめ
OWASP Top 10:2025は、見落としやすいリスクを探す入口です。実装では次の順に確認します。
- 資産、主体、信頼境界、abuse caseを決める
- 認証後もresourceとactionを認可する
- 入力検証、parameterization、context別encodingを分ける
- 認証・session・CSRF・回復・失効を一組で設計する
- 鍵、dependency、設定、外向き通信、例外条件を管理する
- 検知・対応・更新を継続する
この一覧だけで安全が保証されるわけではありません。対象システムの脅威モデルを作り、ASVSや各Cheat Sheet、利用製品の公式資料を要件とtestへ落とし込みます。
参考リソース
- OWASP Top 10:2025
- OWASP Application Security Verification Standard
- OWASP Cheat Sheet Series
- NIST Secure Software Development Framework