Ich bin ein wenig verwirrt darüber. Ich habe über htmlspecialchars()
gelesen und ich plane, dies für die Textareas POST
zu verwenden, um XSS-Angriff zu verhindern. Ich verstehe, dass normalerweise htmlspecialchars()
verwendet werden, um die HTML-Ausgabe zu generieren, die an den Browser gesendet wird. Aber was ich nicht sicher bin, ist:Ist es gut, htmlspecialchars() vor dem Einfügen in MySQL zu verwenden?
1) Ist es eine sichere Praxis, die Benutzereingabedaten htmlspecialchars()
zu verwenden, bevor ich es in MySQL einfüge? Ich verwende bereits PDO prepared-Anweisung mit parametrisierten Werten, um SQL Injection zu verhindern.
2) Oder brauche ich wirklich keine Sorgen über die Verwendung htmlspecialchars()
, um Werte einzufügen (vorausgesetzt, sie sind parametrisiert) und nur htmlspecialchars()
verwenden, wenn ich Ergebnisse von MySQL abrufen und den Benutzern anzeigen?
# 2 ist die richtige Antwort – jszobody
HTML-Escaping (1) ist nicht wirklich relevant für Ihre Datenbank. Gewöhnlich wird (2) bevorzugt, da ein vorzeitiges Entweichen später mit anderen Ausgabekanälen als einer Webseite interferieren könnte. Für Newcomer ist möglicherweise frühes HTML-Escaping ratsam; besser zu früh als später vergessen. – mario
Angenommen, Sie möchten einige Textprotokolle erstellen. Dann müssten Sie Ihre Flucht rückgängig machen. Entfliehe stattdessen im letzten möglichen Moment, damit du weißt, dass es angemessen ist. –