2016-06-30 4 views
-3

Ich habe eine Seite mit Laravel 5.2 erstellt und jetzt versuche ich, meine Formulare sicherer zu machen, ich habe die eingebaute Validierung von Laravel verwendet, um nur so viele Zeichen zu erlauben und bestimmte Felder zu benötigen. Sollte ich trim oder andere Formen der Validierung verwenden, um meine Formulare sicherer zu machen, habe ich unten nachgesehen oder hat Laravel viel mehr Sicherheit eingebaut, um zu helfen.Sicherheit mit Laravel

$data = trim($id); //security 
    $data1 = stripslashes($id); //security 
    $data1 = htmlspecialchars($id); 
+0

Versucht die Validator-Klasse? – Erevald

+2

seit wann sind 'trim()' und 'stripslashes()' über Sicherheit? –

+0

Wenn Sie ein Blade verwenden, wird Blade dies für Sie tun. Wenn Sie über Datenbanksicherheit sprechen, behandelt ihre Datenbankklasse das bereits für Sie. Laravel soll einfach aber effizient und sicher sein. Wenn Sie Laravel korrekt verwenden, müssen Sie nichts extra hinzufügen. – Matt

Antwort

3
  1. trim() tut nichts für die Sicherheit
  2. stripslashes() rückgängig gemacht werden bei der Verwendung von Eloquent oder den Abfrage-Generator gespeichert.
  3. htmlspecialchars() dient zum Anzeigen von Daten und nicht zum Speichern.

All dies wird bereits von Laravel erledigt. Immer wenn Sie einfach {{ $display_it }} anzeigen lassen, müssen Sie automatisch auf XSS-Attacken achten. blade.

Was die Sicherung von Formulardaten betrifft - Laravels Datenbankabfragen sind alle parametrisiert, was bedeutet, dass keine SQL-Injektion möglich ist.

Der Rest Ihrer Frage ist zu breit, um beantwortet zu werden, da Sie an Sicherheit wie ein Schloss an einer Tür denken, aber Sicherheit ist mehr wie das Tragen eines Handschuhs, um eine heiße Pfanne aufzunehmen. Es sollte Logik angewendet werden, nicht verallgemeinert.

+0

Ich habe gerade irgendwo gelesen, dass Triple könnte das gleiche wie Doppel so entfernten Kommentar zu lesen, um mehr in es zu lesen: p – Matt

+0

nur fyi - 'Laravel 5.0 entkoppelt alle Ausgaben der Blade-Anweisungen {{}} und {{{}}}. Ein neuer {!! !!} Direktive wurde eingeführt, um rohe, unausgeglichene Ausgabe anzuzeigen. Also denke ich, dass du technisch korrekt warst, bevor haha ​​ – Matt

+0

@Matt Ja, das Triple/Double wird das gleiche tun, aber es ist irreführend wie '{{{}}}' Unterstützung wurde nur für Personen bereitgestellt, die Migrationen durchführen. Ich bin mir sicher, dass es in '5.6 LTS' entfernt wird. Und wir sollten '{!! !!} 'wenn uns XSS absolut egal ist, absolut. – Ohgodwhy