2017-02-19 1 views
0
$this->validate($request, [ 
    'state' => 'required', 
    'zipcode' => 'required', 
    'address' => 'required', 
    ],[ 
    'state.required'=>'state required', 
    'zipcode.required'=>'zipcode required', 
    'address.required'=>'address required', 
    ]); 
    $Userdata = Userdata::where('user_id',Auth::user()->id)->first(); 
    $userinfo->update(Input::only('state', 'zipcode','address')); 

Ist dies sicher auf SQL-Injektion? Ich habe festgestellt, dass die Anführungszeichen in der Datenbank gespeichert werden, ohne zu entkommen Ist Direct Store-Eingabe in db ist sicher? Ich brauche keine Escape-Daten?Sicherheit der Eingabe :: get und eloquent

+1

Nein, Sie müssen nicht manuell Daten entkommen. Laravel wird es für Sie übernehmen – zgabievi

Antwort

2

Laravel verwendet PDO-vorbereitete Anweisungen, sodass Sie sich keine Gedanken über SQL-Injection machen müssen, es sei denn, Sie benötigen kein abgefragtes Raw-SQL, das Sie nicht in gültiger Weise verwenden.

Just in Ihrem Code hinzuzufügen statt:

$userinfo->update(Input::only('state', 'zipcode','address')); 

Sie sollten eher verwenden:

$userinfo->update($request->only('state', 'zipcode','address')); 

(aber es hat mit SQL-Injection nichts gemein)

0

Die Idee ist, nicht wie du die Daten gespeichert hast. Es geht darum, wie Sie die Daten zeigen. lesen Sie Laravel blade, um den Mechanismus des Zeigens unter Verwendung {{ content }} und {!! content !!} zu kennen. , um sicher zu gehen: Speichern <script>alert("test")</script> und versuchen, den gespeicherten Text mit zwei Mechanismen zu zeigen