Heim > Backend-Entwicklung > PHP-Tutorial > Was ist der beste Weg, das veraltete PHP FILTER_SANITIZE_STRING zu ersetzen?

Was ist der beste Weg, das veraltete PHP FILTER_SANITIZE_STRING zu ersetzen?

Patricia Arquette
Freigeben: 2024-12-03 19:39:14
Original
360 Leute haben es durchsucht

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

Veraltung der Konstante FILTER_SANITIZE_STRING

Mit der Veröffentlichung von PHP 8.1 wurde die Konstante FILTER_SANITIZE_STRING veraltet. Dies hat bei Entwicklern, die sich zuvor auf diesen Filter zur Bereinigung von String-Eingaben verlassen haben, Bedenken geweckt.

Warum war FILTER_SANITIZE_STRING veraltet?

Laut der PHP-Community war FILTER_SANITIZE_STRING unklar Zweck und könnte zu Verwirrung führen. Es entfernte willkürliche Inhalte, ohne eine klare Erklärung ihrer Funktionsweise zu liefern. Darüber hinaus wurde es durch effektivere String-Desinfektionstechniken ersetzt.

Womit können Sie es ersetzen?

Es gibt mehrere Optionen, um das Veraltete zu ersetzen FILTER_SANITIZE_STRING:

  • FILTER_UNSAFE_RAW: Dies ist der Standard-String-Filter und bietet keine Filterung. Es kann verwendet werden, wenn keine Bereinigung gewünscht ist.
  • htmlspecialchars(): Diese Funktion kodiert Sonderzeichen, um Cross-Site-Scripting (XSS)-Schwachstellen zu verhindern. Es sollte zum Codieren von Ausgabedaten und nicht von Eingabedaten verwendet werden.
  • Benutzerdefinierte Polyfüllung: Wenn Sie die Funktionalität von FILTER_SANITIZE_STRING neu erstellen müssen, können Sie eine benutzerdefinierte Polyfüllung mit regulären Ausdrücken erstellen.

Beispiel Polyfill

function filter_string_polyfill(string $string): string
{
    $str = preg_replace('/\x00|<[^>]*>?/', '', $string);
    return str_replace([&quot;'&quot;, '&quot;'], ['&amp;#39;', '&amp;#34;'], $str);
}
Nach dem Login kopieren

Best Practice: Escape-Ausgabe

Es ist wichtig zu betonen, dass die Bereinigung auf Ausgabedaten und nicht auf Eingabedaten angewendet werden sollte. Indem Sie Sonderzeichen in der Ausgabe maskieren, verhindern Sie, dass schädliche Skripte oder Daten Ihre Anwendung beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWas ist der beste Weg, das veraltete PHP FILTER_SANITIZE_STRING zu ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage