Maison > développement back-end > tutoriel php > Quelle est la meilleure façon de remplacer le PHP FILTER_SANITIZE_STRING obsolète ?

Quelle est la meilleure façon de remplacer le PHP FILTER_SANITIZE_STRING obsolète ?

Patricia Arquette
Libérer: 2024-12-03 19:39:14
original
436 Les gens l'ont consulté

What's the Best Way to Replace the Deprecated PHP FILTER_SANITIZE_STRING?

Dépréciation de la constante FILTER_SANITIZE_STRING

Avec la sortie de PHP 8.1, la constante FILTER_SANITIZE_STRING est obsolète. Cela a suscité des inquiétudes parmi les développeurs qui comptaient auparavant sur ce filtre pour nettoyer les entrées de chaîne.

Pourquoi FILTER_SANITIZE_STRING était-il obsolète ?

Selon la communauté PHP, FILTER_SANITIZE_STRING avait une valeur peu claire. objectif et pourrait prêter à confusion. Il a supprimé le contenu arbitraire sans fournir d’explication claire sur sa fonctionnalité. De plus, il a été remplacé par des techniques de désinfection des chaînes plus efficaces.

Par quoi pouvez-vous le remplacer ?

Il existe plusieurs options pour remplacer le FILTER_SANITIZE_STRING obsolète :

  • FILTER_UNSAFE_RAW : Il s'agit du filtre de chaîne par défaut et ne fournit aucun filtrage. Elle peut être utilisée si aucune désinfection n'est souhaitée.
  • htmlspecialchars() : Cette fonction code les caractères spéciaux pour empêcher les vulnérabilités de script intersite (XSS). Il doit être utilisé pour encoder les données de sortie, pas les données d'entrée.
  • Polyfill personnalisé : Si vous devez recréer la fonctionnalité de FILTER_SANITIZE_STRING, vous pouvez créer un polyfill personnalisé à l'aide d'expressions régulières.

Exemple Polyfill

function filter_string_polyfill(string $string): string
{
    $str = preg_replace('/\x00|<[^>]*>?/', '', $string);
    return str_replace([&quot;'&quot;, '&quot;'], ['&amp;#39;', '&amp;#34;'], $str);
}
Copier après la connexion

Meilleure pratique : sortie d'échappement

Il est important de souligner que la désinfection doit être appliquée aux données de sortie, et non aux données d'entrée. En échappant aux caractères spéciaux dans la sortie, vous empêchez les scripts ou les données malveillants d'affecter votre application.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal