Remplacement des constantes de filtre obsolètes : FILTER_SANITIZE_STRING et FILTER_SANITIZE_STRIPPED
Avec PHP 8.1, les filtres constants FILTER_SANITIZE_STRING et FILTER_SANITIZE_STRIPPED sont devenus obsolète. Cela a suscité des inquiétudes parmi les développeurs qui utilisaient auparavant ces filtres pour la désinfection des chaînes.
La raison de la dépréciation
Ces constantes de filtre ont été jugées déroutantes et peu claires dans leur objectif. Leur fonctionnalité se chevauchait avec d'autres filtres de chaînes, entraînant de la confusion et des résultats incohérents. La communauté PHP a décidé d'interrompre son support.
Options de remplacement
Il existe plusieurs options disponibles pour remplacer ces filtres obsolètes :
Le code suivant démontre une fonction polyfill pour filter_string_polyfill :
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], ['&#39;', '&#34;'], $str); }
N'oubliez pas que la désinfection des entrées est moins efficace que l'échappement des sorties. Concentrez-vous sur l'encodage des données potentiellement vulnérables avant qu'elles ne soient affichées ou utilisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!