Heim >Backend-Entwicklung >PHP-Tutorial >Was sind die besten Ersetzungen für die veralteten PHP-Konstanten FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED?

Was sind die besten Ersetzungen für die veralteten PHP-Konstanten FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-30 20:26:12978Durchsuche

What are the Best Replacements for the Deprecated PHP FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED Constants?

Verstehen des Abschreibungshinweises: Die Konstante FILTER_SANITIZE_STRING ist veraltet

In PHP 8.1 sind die Konstanten FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED veraltet. Dies wirft die Frage auf: Was sind geeignete Ersatzwerte für diese Konstanten?

Begründung der Abschreibung

Diese Filter hatten einen ungenauen Zweck und konnten zu Verwirrung führen. Ihre Funktionalität wurde oft als Standard-Stringfilter FILTER_UNSAFE_RAW missverstanden. Aus diesem Grund hat die PHP-Community ihre Verwendung abgelehnt.

Ersetzungsoptionen

Es stehen mehrere Optionen zum Ersetzen von FILTER_SANITIZE_STRING und zur Verfügung FILTER_SANITIZE_STRIPPED:

  • FILTER_UNSAFE_RAW: Dieser Filter wendet keine Filterung an und kann verwendet werden, wenn keine spezielle Desinfektion erforderlich ist.
  • htmlspecialchars(): Verwenden Sie diese Funktion, um sich vor XSS-Schwachstellen zu schützen, indem Sie die Ausgabe kodieren, anstatt Bereinigen von Eingaben.
  • Benutzerdefinierte Regex-Polyfüllung: Für Fälle, in denen bestimmte Funktionen erforderlich sind, kann eine Regex-Polyfüllung erstellt werden, um das Verhalten der veralteten Filter zu reproduzieren:
function filter_string_polyfill(string $string): string
{
    $str = preg_replace('/\x00|<[^>]*>?/', '', $string);
    return str_replace([&quot;'&quot;, '&quot;'], ['&amp;#39;', '&amp;#34;'], $str);
}

Best Practice: Output Escaping

Es ist wichtig, sich daran zu erinnern Die Bereinigung von Eingaben ist nicht wirksam bei der Vermeidung von Sicherheitsrisiken. Konzentrieren Sie sich stattdessen darauf, die Ausgabe zu maskieren, um sich vor XSS-Schwachstellen zu schützen. Dadurch wird sichergestellt, dass die Ausgabe sicher ist, unabhängig von eventuell empfangenen schädlichen Eingaben.

Das obige ist der detaillierte Inhalt vonWas sind die besten Ersetzungen für die veralteten PHP-Konstanten FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn