FILTER_SANITIZE_STRING 定数と FILTER_SANITIZE_STRIPPED 定数の最近の非推奨により、これらの定数を入力に依存している PHP 開発者の間で懸念が生じています。サニタイゼーション。
非推奨の内容とその理由
FILTER_SANITIZE_STRING および FILTER_SANITIZE_STRIPPED は、以前は入力文字列から潜在的な XSS 脆弱性を削除するために使用されていました。ただし、これらのフィルターは混乱を招き、直感的ではない動作を示しました。 FILTER_SANITIZE_STRING は「<」間のすべての文字を削除しました。
開発者が意図した用途を誤解することが多かったため、PHP コミュニティは、これらのフィルターが解決するよりも混乱を引き起こしたと判断しました。入力のサニタイズは、FILTER_UNSAFE_RAW などの他のフィルターによってすでに適切に処理されています。
置換オプション
これらの非推奨のものを置き換えるオプションはいくつかあります。 filters:
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], [''', '"'], $str); }黄金律を覚えておいてください
入力のサニタイズは、XSS 攻撃に対する信頼できる防御とみなされるべきではないことを強調することが重要です。代わりに、開発者は出力をエスケープして、潜在的に危険なコンテンツがページに挿入されるのを防ぐことに重点を置く必要があります。
以上がPHP の FILTER_SANITIZE_STRING の非推奨: 最適な代替オプションは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。