Muss ich die Benutzereingabe Laravel bereinigen?

8

Ich benutze Laravel 4 mit Eloquent. Wenn ich die Benutzereingabe bekomme, benutze ich einfach $name=Input::get('name') und dann mache ich $a->name=$name;

Ich weiß nicht, ob die Funktion Input::get mich vor SQL Injection und XSS schützt. Wenn nicht, was muss ich tun, um die Eingabe zu bereinigen?

Und wenn ich den Wert in meiner Ansicht zeige, soll ich {{$a}} oder {{{$a}}}

verwenden

Grüße und danke.

    
Fylux 05.10.2014, 12:44
quelle

2 Antworten

10

Laravel verwendet die PDO-Parameterbindung, so dass SQL Injection Sie nicht kümmern sollten. Sie sollten dies lesen.

Input :: get () filtert nichts.

Dreifache geschweifte Klammern machen dasselbe wie e () und HTML :: entities (). Alle von ihnen rufen Htmlentities mit UTF-8-Unterstützung auf:

%Vor%     
cha-cha 05.10.2014, 12:52
quelle
3

Sie sollten {{{$a}}} verwenden, weil zum Beispiel Input HTML-Tags haben kann. Laravel wird es nicht filtern.

Um eine SQL-Injection zu vermeiden, sollten Sie Ihre Parameter an folgende Parameter binden:

%Vor%

und nicht:

%Vor%     
Marcin Nabiałek 05.10.2014 12:47
quelle