2016-08-07 10 views
-1

Wenn Sie htmlspecialchars() verwenden beim Empfang Eingabe vom Benutzer, wie:Muss eine vorbereitete Anweisung in einer SELECT-Abfrage verwendet werden?

$email = htmlspecialchars($_POST['email']); 

Sollten Sie eine vorbereitete Anweisung verwenden, wenn die Abfrage nur ein ist SELECT ein?

+3

Ja. Immer. Nächster. – Strawberry

+0

Sie mischen Äpfel und Orangen. ['htmlspecialchars()'] (http://php.net/manual/en/function.htmmlspecialchars.php) hat nichts mit Eingaben zu tun. Es wird verwendet, um korrekte HTML-Ausgabe zu erzeugen. MySQL und die vorbereiteten Anweisungen sind auch in keiner Weise mit Eingabe, Ausgabe oder 'htmlspecialchars()' verwandt. Es gibt viele Gründe, warum eine vorbereitete SELECT-Anweisung besser ist als eine Abfrage, die durch das Verknüpfen von Strings erstellt wird (unabhängig davon, woher die Strings kommen). Das Vermeiden von [SQL-Injektionen] (https://en.wikipedia.org/wiki/SQL_injection) ist eine von ihnen (und wahrscheinlich die wichtigste). – axiac

Antwort

0

Sie sollten immer vorbereitete Anweisungen verwenden. Hier ist ein exemple: wenn Benutzer gibt die folgenden:

"105 or 1=1" 

Die htmlspecialchars() Funktion wird nichts tun. Die Abfrage würde wie folgt aussehen:

SELECT * FROM Users WHERE UserId = 105 or 1=1 

Sehen Sie diese doc

Verwandte Themen