PHP ユーザー入力のサニタイズ: パラダイム シフト
ユーザー入力のサニタイズは、SQL インジェクションや XSS 攻撃から保護するために重要です。ただし、入力のフィルタリングに関する一般的な概念には欠陥があります。代わりに、使用されるコンテキストに合わせてデータを適切にフォーマットすることに重点を置きます。
SQL クエリのプリペアド ステートメント
変数を SQL 文字列に連結する代わりに、プリペアド ステートメントを使用します。パラメータ付き。これにより、データが正しくフォーマットされ、SQL インジェクションから保護されます。
HTML 出力用の htmlspecialchars
HTML マークアップに文字列を埋め込む場合、htmlspecialchars を使用して特殊文字をエスケープし、特殊文字を回避します。 XSS 攻撃。これは、すべての echo ステートメントと print ステートメントに適用する必要があります。
シェル コマンドのエスケープ
exec で外部コマンドを使用する場合は、escapeshellcmd とscapeshellarg を使用して文字列と引数をエスケープします。コマンドインジェクションから保護します。
json_encode 用JSON
手動による JSON 文字列の作成を避け、代わりに json_encode を使用します。 JSON の書式設定は複雑で、専用の関数によって適切な書式設定が保証されます。
例外としての事前フォーマットされた入力
上記のアプローチの唯一の例外は、次のような事前フォーマットされた入力のサニタイズです。ユーザーが送信した HTML。セキュリティ上の懸念から、これは可能な限り避けてください。
以上が攻撃を防ぐために PHP でユーザー入力を安全に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。