Frage

Ich experimentiere mit einem kommentieren zu schaffen. Ich verwende php-oEmbed Klasse und HTML Purifier . Was Filter kann ich verwenden, um sicherzustellen, dass die Kommentare in meiner Datenbank eingefügt sind sicher? Ich weiß, dass Sie verwenden können PHP-Filter wie FILTER_SANITIZE_STRING, sondern diese den HTML-Code in Unternehmen, die nicht drehen?

Auch wenn Sie etwas verwenden, wie der WMD-Editor , haben Sie dann nutzen, um etwas auf dem Client-Seite als auch (wie PHP Markdown ), um sicherzustellen, dass es sicher ist?

War es hilfreich?

Lösung

Im Grunde müssen Sie sanitize Benutzereingaben, wenn Sie es irgendwo senden.

Wenn Sie es in Ihre Datenbank setzen müssen Sie SQL-Injection verhindern, indem sie unter Angabe SQL Sonderzeichen (Prepared Statements wird dies für Sie tun). Wenn Sie es an einen Browser senden müssen Sie HTML-Sonderzeichen zu entkommen (PHP-Funktionen, dies zu tun hat) Skripteinschleusung zu verhindern.

Es können auch andere Orte, an denen Sie Sonderzeichen entkommen müssen, auch. Zum Beispiel, wenn Sie die Kommentare zu einem Bash-Skript auf dem Server senden eine Art der Verarbeitung zu tun. In diesem Fall müssen Sie Bash spezifische Sonderzeichen zitieren oder zu entkommen.

Es ist wichtig, nicht Zitat / an der falschen Bühne entkommen: zum Beispiel, keine HTML-Entitäten entkommen, wenn Sie es in die Datenbank gestellt, wenn Sie absolut sicher sind, was Sie tun. Es ist sehr leicht versehentlich Dinge wieder zu entkommen, wenn man es aus der Datenbank herausziehen und bereiten Sie es auf einen Browser zu schicken, oder die Dinge nicht überhaupt entkommen, wenn Sie eine Fehlermeldung senden, wenn die Datenbank-Verbindung fehlschlägt (dies könnte eine XSS-Schwachstelle verursachen ). Machen Sie Ihre im letzten Moment entkommen und Sie werden wahrscheinlich diese Fehler vermeiden.

Andere Tipps

Sie keine Filter für SQL-Injection verwenden müssen. Eine bevorzugte Lösung ist vorbereitete Anweisungen zu verwenden. Zum Beispiel bietet PDO PDOStatement .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top