SQL Injection: WAF blocked request
SQLインジェクション攻撃パターンが検出された場合のエラー
概要
Webアプリケーションファイアウォール(WAF)がSQLインジェクション攻撃パターンを検出してリクエストをブロックした場合のエラーです。正当なリクエストが誤検出される場合もあります。
エラーメッセージ
403 Forbidden - Request blocked by WAF
または
AWS WAF: Request blocked - SQL injection detected
原因
- 実際の攻撃: 悪意あるSQLインジェクションの試み
- 誤検出: 正当な入力がSQLパターンに一致
- ルールが厳しすぎる: WAFルールの設定が過剰
- エスケープ不足: アプリケーション側の対策不備
解決策
1. プリペアドステートメントを使用
| |
2. ORMを使用
| |
3. Python での対策
| |
4. PHP での対策
| |
5. 入力バリデーション
| |
6. WAFルールの調整
| |
7. ホワイトリスト方式
| |
8. エスケープ(最後の手段)
| |
9. エラーメッセージの非公開
| |
10. セキュリティテスト
| |
よくある間違い
- 動的クエリでテーブル名やカラム名を直接連結
- エラーメッセージでSQLエラーの詳細を露出
- クライアント側のみでバリデーション
- 「特殊文字をエスケープすれば安全」と過信
Security の他のエラー
この記事は役に立ちましたか?