


Veraltung von FILTER_SANITIZE_STRING: Eine Geschichte von Verwirrung und unbeabsichtigten Konsequenzen
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 „
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:
- FILTER_UNSAFE_RAW: Diese Standardzeichenfolge Filter führt keine Filterung durch. Verwenden Sie diese Funktion, wenn Sie den Rohzeichenfolgenwert ohne Änderungen wünschen.
- htmlspecialchars(): Verwenden Sie diese Funktion, um Sonderzeichen zu kodieren, die für XSS-Schwachstellen ausgenutzt werden könnten. Denken Sie jedoch daran, es auf die Ausgabe und nicht auf die Eingabe anzuwenden.
- Benutzerdefinierte Polyfüllung: Für diejenigen, die das spezifische Filterverhalten von FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED benötigen, kann eine Regex-basierte Polyfüllung erstellt werden wie folgt:
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!

APHPDependencyInjectionContainerisatoolthatmanagesClass -Abhängigkeiten, EnhancingCodemodularität, Testbarkeit und Maschinenbarkeit.

Wählen Sie die Abhängigkeitsinjektion (DI) für große Anwendungen. Der Servicelocator ist für kleine Projekte oder Prototypen geeignet. 1) DI verbessert die Testbarkeit und Modularität des Codes durch Konstruktorinjektion. 2) Servicelocator erhält Dienstleistungen durch die Zentrumregistrierung, was bequem ist, aber zu einer Erhöhung der Codekupplung führen kann.

PhpapplicationscanbeoptimizedforspeedandefficiencyBy: 1) EnabgingOpcacheinphp.ini, 2) usePreparedStatementsWithpdoFordatabasequeries, 3) Ersatzloopswitharray_Filterandarray_mapfordataprozessing, 4) Konfigurieren von), 4), implementieren, 5)

PhpemailvalidationInvolvesthreesteps: 1) Formatvalidationusing -RegularexpressionStocheckTheemailformat; 2) DnsvalidationToensurethedomainhasavalidmxRecord;

TomakePhpapplicationsfaster, folgt der THESESTEPS: 1) UseOpCodeCaching LikeopcachetOstorePrecompiledScriptByteCode.2) MinimizedatabasequeriesByusedQueryCachingandefficiendexing.3) Hebel -FeaturesForbetTerCodeeffizienz.4) Implementierungspflichtiger Strategie

ToimProvePhpapplicationSpeed, folge theSeSteps: 1) enableOpCodeCachingWithAPCUToreducescriptexexexeTime.2) ImplementDatabaseQueryCachingusedpdotominimizedatabaseHits.3) UseHttp/2TomultiplexRequeTsReconneconneconneconneconneconneconnectionOverhead.4))

Die Abhängigkeitsinjektion (DI) verbessert die Testbarkeit von PHP -Code durch explizit transitive Abhängigkeiten signifikant. 1) DI -Entkopplungsklassen und spezifische Implementierungen machen Tests und Wartung flexibler. 2) Unter den drei Typen injiziert der Konstruktor explizite Expressionsabhängigkeiten, um den Zustand konsistent zu halten. 3) Verwenden Sie DI -Container, um komplexe Abhängigkeiten zu verwalten, um die Codequalität und die Entwicklungseffizienz zu verbessern.

DatabaseQueryoPtimizationInphpinvolvesseveralStrategieShancePerformance.1) selectonlynn -nötigesColumntededatatransfer.2) Verwenden Sie IndexingTospeedUpDatarErvieval.3) ImplementQueryCachingtoStoreresultsOffRequerien.4) Nützliche Stände


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Dreamweaver Mac
Visuelle Webentwicklungstools

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen
