Die kürzliche Verwerfung der Konstanten FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED hat bei PHP-Entwicklern, die sich bei der Eingabe auf sie verlassen, Bedenken geweckt Bereinigung.
Was ist veraltet und warum?
FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED wurden zuvor verwendet, um potenzielle XSS-Schwachstellen aus Eingabezeichenfolgen zu entfernen. Allerdings zeigten diese Filter ein verwirrendes und nicht intuitives Verhalten. FILTER_SANITIZE_STRING hat alle Zeichen zwischen „<“ entfernt. und das Ende der Zeichenfolge entfernt, NUL-Bytes entfernt und einfache und doppelte Anführungszeichen codiert.
Die PHP-Community stellte fest, dass diese Filter mehr Verwirrung stifteten als lösten, da Entwickler ihre beabsichtigte Verwendung oft missverstanden hatten. Die Eingabebereinigung wird von anderen Filtern wie FILTER_UNSAFE_RAW bereits angemessen gehandhabt.
Ersetzungsoptionen
Es gibt mehrere Optionen zum Ersetzen dieser veralteten Filter:
function filter_string_polyfill(string $string): string { $str = preg_replace('/\x00|<[^>]*>?/', '', $string); return str_replace(["'", '"'], [''', '"'], $str); }Denken Sie daran die Goldene Regel
Es ist wichtig zu betonen, dass die Eingabebereinigung nicht als zuverlässige Verteidigung gegen XSS-Angriffe angesehen werden sollte. Stattdessen sollten sich Entwickler darauf konzentrieren, die Ausgabe zu maskieren, um zu verhindern, dass potenziell gefährliche Inhalte in die Seite eingefügt werden.
Das obige ist der detaillierte Inhalt vonPHPs FILTER_SANITIZE_STRING-Abwertung: Was sind die besten Ersatzoptionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!