Entry № 602
入力検証
入力検証 とは何ですか?
入力検証アプリケーションが処理する前に、信頼できないすべての入力が期待する型・長さ・範囲・形式・値集合に合致しているかをサーバー側で確認する処理。
入力検証は、ユーザー・API・ファイル・上流サービスからの不正または悪意ある入力からアプリケーションを守ります。推奨されるのは許可リスト方式で、受け入れ可能な内容(型・長さ・文字集合・正規表現・業務上の範囲)を厳密に定義し、それ以外を拒否します。クライアント側の検証は迂回可能なため必ずサーバー側で実施し、コンテキストごとの出力エンコードやパラメータ化クエリと組み合わせます。SQL インジェクション・XSS・SSRF・デシリアライズ・パストラバーサルなど多くの深刻な脆弱性は、信頼境界での入力検証不足に起因します。
● 例
- 01
quantity パラメータが 1 から 100 までの正の整数でなければ拒否する。
- 02
orderId パスパラメータを UUID v4 のみ許可し、SQL インジェクションのペイロードがデータ層へ届かないようにする。
● よくある質問
入力検証 とは何ですか?
アプリケーションが処理する前に、信頼できないすべての入力が期待する型・長さ・範囲・形式・値集合に合致しているかをサーバー側で確認する処理。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
入力検証 とはどういう意味ですか?
アプリケーションが処理する前に、信頼できないすべての入力が期待する型・長さ・範囲・形式・値集合に合致しているかをサーバー側で確認する処理。
入力検証 からどのように防御しますか?
入力検証 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
入力検証 の別名は何ですか?
一般的な別名: データ検証, サーバー側検証。