Ai-je besoin de désinfecter l'entrée de l'utilisateur Laravel
Je suis avec Laravel 4 avec Éloquent.
Lorsque j'arrive à la saisie de l'utilisateur je viens d'utiliser $name=Input::get('name')
et puis je ne $a->name=$name;
Je ne sais pas si la fonction Input::get
me protéger contre l'Injection SQL et XSS. Si cela ne fonctionne pas, que dois-je faire pour désinfecter l'entrée?
Et, quand je montre la valeur de mon point de vue, doit-je utiliser {{$a}}
ou {{{$a}}}
De salutations et de remerciements.
En plus des autres réponses, dans le cas où vous décidez d'utiliser quelque chose comme quelque Chose de nouveau(Input::all()) assurez-vous de spécifier le $champs remplissables quelque Chose dans le modèle, afin de les protéger contre de masse. Pas strictement relatifs à vos questions, mais quelque chose d'être conscient de.
OriginalL'auteur Fylux | 2014-10-05
Vous devez vous connecter pour publier un commentaire.
Laravel utilise PDO du paramètre de liaison, de sorte que l'injection SQL n'est pas quelque chose qui devrait vous inquiéter. Vous devriez lire cette.
Input::get() ne filtre rien.
Triples accolades faire la même chose que e() et HTML::entities(). Tous d'entre eux appellent htmlentities avec le support UTF-8:
Production de fuite, pas d'entrée.
Merci, mais pourquoi?
Il n'y a pas besoin de modifier les données, sauf si vous l'utiliser effectivement. Filtre d'entrée, échapper à la sortie.
OriginalL'auteur cha-cha
Vous devez utiliser
{{{$a}}}
parce que par exemple l'Entrée peut a balise HTML. Laravel ne filtre.Pour éviter les injection SQL, vous devez utiliser lier vos paramètres d'exécution des requêtes comme:
et non pas:
Pour autant que je sais que c'est l'interface pour se POST, GET et donc sur les données. Il garnitures de données, mais ne filtre pas, donc lors de l'affichage, vous devez utiliser le triple de contreventement - de cette façon,
htmlentities
fonction est exécutée sur la valeur de la variableSi j'utilise {{{ pour le montrer, dois-je aussi utiliser htmlentities lors de l'enregistrement de l'information?
Non, l'utilisation de
{{{
Laravel le fera pour vousMais est-il un problème si j'ai un corrompu les entrées enregistrées dans ma db?
OriginalL'auteur Marcin Nabiałek