Ist FILTER_SANITIZE_STRING genug, um SQL-injection und XSS-Angriffe?
Ich bin mit der PHP 5 mit SQLite 3 Klasse und ich Frage mich, ob mit PHP built-in Daten-Filterung - Funktion mit dem flag FILTER_SANITIZE_STRING ist genug, um SQL-injection und XSS-Angriffe.
Ich weiß, ich kann gehen, schnappen Sie sich eine große hässliche PHP-Klasse, die filter alles aber ich halte gern meinen code so sauber und so kurz wie möglich.
Bitte beraten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
SQLite3
- Klasse können Sie prepare-Anweisungen binden und Ihnen Werte zu. Das wäre das richtige tool für Ihre Datenbank-Abfragen.Als für XSS, auch das ist völlig unabhängig von Ihrer Nutzung von SQLite.
Es ist nie ratsam, die gleichen bereinigungsfunktion für beide XSS und SQLI. Für XSS Sie verwenden können, htmlentities filtern Benutzereingaben werden vor der Ausgabe in HTML. Für SQLI auf SQLite können Sie wahlweise mit vorbereiteten Aussagen (was ist besser) oder verwenden Sie escapeString zu filtern Benutzereingaben vor der Erstellung von SQL-Abfragen mit Ihnen.
Ich denke, dass seine gut genug, um die sichere Zeichenfolge-Daten-Eingänge, aber es gibt viele andere verfügbare Optionen, die Sie wählen können. z.B. anderen Bibliotheken erhöhen würde Ihrer Bewerbung Zeit, aber wird Ihnen helfen, zu verarbeiten/analysieren von anderen Arten von Daten.
Wenn Sie nicht Vertrauen Sie Ihrem eigenen Verständnis der Sicherheitsprobleme, genug, um die Notwendigkeit zu Fragen, diese Frage, wie kann man jemand Vertrauen, hier, um Ihnen eine gute Antwort?
Wenn man den Weg von entfernen unerwünschter Zeichen früher oder später wirst du zu Strippen aus Zeichen, die ein Benutzer eingeben möchten. Es ist besser, zu Kodieren, die für den spezifischen Kontext, dass die Daten verwendet werden.
Check-out OWASP ESAPI, es enthält viele encoding-Funktionen. Wenn Sie nicht wollen, ziehen Sie in die große Bibliothek, überprüfen Sie heraus, was die Funktionen tun, und kopieren Sie die relevanten Teile der Codebasis.
Wenn Sie nur versuchen, zu erstellen eine einfache form und wollen sich nicht vorstellen und keine schweren oder auch leichten Rahmen, dann geht das auch mit php-Filter + und verwenden Sie PDO für die Datenbank. Diese schützen sollten Sie aus alles, aber cross-site request Fälschungen.