ホームページ > バックエンド開発 > PHPチュートリアル > 非推奨の PHP 8.1 文字列サニタイズ フィルター (FILTER_SANITIZE_STRING および FILTER_SANITIZE_STRIPPED) を置き換える方法は?

非推奨の PHP 8.1 文字列サニタイズ フィルター (FILTER_SANITIZE_STRING および FILTER_SANITIZE_STRIPPED) を置き換える方法は?

DDD
リリース: 2024-12-05 07:13:13
オリジナル
521 人が閲覧しました

How to Replace Deprecated PHP 8.1 String Sanitization Filters (FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED)?

非推奨のフィルター定数の置き換え: FILTER_SANITIZE_STRING および FILTER_SANITIZE_STRIPPED

PHP 8.1 では、定数フィルター FILTER_SANITIZE_STRING およびFILTER_SANITIZE_STRIPPED は非推奨になりました。これは、以前に文字列のサニタイズにこれらのフィルターを使用していた開発者の間で懸念を引き起こしました。

非推奨の理由

これらのフィルター定数は、その目的がわかりにくく、不明瞭であると考えられていました。これらの機能は他の文字列フィルターと重複しており、混乱と一貫性のない結果を引き起こしていました。 PHP コミュニティは、サポートを終了することを決定しました。

置換オプション

これらの非推奨のフィルタを置換するために使用できるオプションがいくつかあります。

  • Use FILTER_UNSAFE_RAW: これは、以下を実行するデフォルトの文字列フィルターです。フィルタリングはありません。特定のサニタイズが必要ない場合に適しています。
  • XSS 防止には htmlspecialchars() を使用します: 主に XSS 脆弱性を防止するために FILTER_SANITIZE_STRING を使用していた場合は、これを htmlspecialchars() に置き換えます。効果的な保護を確保するには、この関数は入力ではなく出力で呼び出す必要があります。
  • ポリフィルの作成: 非推奨のフィルターの正確な動作が必要な場合は、ポリフィルを作成できます。正規表現を使用します。

次のコードは、次のポリフィル関数を示しています。 filter_string_polyfill:

function filter_string_polyfill(string $string): string
{
    $str = preg_replace('/\x00|<[^>]*>?/', '', $string);
    return str_replace([&quot;'&quot;, '&quot;'], ['&amp;#39;', '&amp;#34;'], $str);
}
ログイン後にコピー

入力のサニタイズは、出力のエスケープよりも効果が低いことに注意してください。潜在的に脆弱なデータを表示または使用する前にエンコードすることに重点を置きます。

以上が非推奨の PHP 8.1 文字列サニタイズ フィルター (FILTER_SANITIZE_STRING および FILTER_SANITIZE_STRIPPED) を置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート