Laravel - SQL-injection-Prävention mit {{{ }}}
Ich habe einige Formulare in meine Seite made in Laravel. Gemäß der Dokumentation, dreifach geschweifte Klammern - {{{ }}} vor dem Ausgang. Also wenn ich mit:
{{{ Form::text('name') }}}
kann ich 100% sicher sein, dass es keine Möglichkeit zum einfügen von SQL-injection-Befehl in dieser form Eingang?
- Nein, tripple Klammern entweicht potenziell gefährlich-Ausgang. Aber deine Frage zeigt Mangel an wissen, wie das web funktioniert, vielleicht sollten Sie beginnen mit einigen grundlegenden HTML zu verstehen, warum der Rahmen kann nicht verhindern, dass client sendet schädliche Daten.
- Du vermisst etwas, das von einer langen, langen daneben. Die dreifach-Klammern sind nicht für SQL-escaping. Wenn Sie laravel, SQL-injection ist nicht das, was man machen sollte in den ersten Platz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, Sie verstanden die
{{{
}}}
falsch. Sie entgehen Ausgabe.Also, wenn Sie nicht
Das Ergebnis ist dieses:
Es immer noch erzeugt HTML-code, aber es wird escaped, so dass es nicht als HTML interpretiert sondern als text
Verhinderung von SQL-injection -
Müssen Sie verhindern, dass SQL-injection-beim speichern von Daten in der DB. Normalerweise tun Sie das in Ihrer Steuerung. Wenn Sie Eloquent oder Laravels Abfrage-generator Sie don ' T sorgen zu viel. Es kümmert möglichen SQL-injection-Punkte. Nur wenn Sie ausführen, rohen SQL zu achten.
Aus der Laravel Docs:
DB::raw()
,whereRaw()
undDB::statement()
. Die so ziemlich immer "roh" in den Namen der Methode