Нужно ли дезинфицировать пользовательский ввод Laravel

Я использую Laravel 4 с Eloquent.
Когда я получаю пользовательский ввод, я просто использую $name=Input::get('name') а потом я делаю $a->name=$name;

Я не знаю, если функция Input::get защити меня от SQL-инъекций и XSS. Если это не так, что я должен сделать, чтобы дезинфицировать вход?

И когда я покажу значение на мой взгляд, я должен использовать {{$a}} или же {{{$a}}}

Привет и спасибо.

8

Решение

Laravel использует привязку параметров PDO, поэтому вам не стоит беспокоиться о внедрении SQL. Вы должны прочитать этот хоть.

Input :: get () ничего не фильтрует.

Тройные фигурные скобки выполняют те же функции, что и e () и HTML :: entity (). Все они называют htmlentities с поддержкой UTF-8:

htmlentities($your_string, ENT_QUOTES, 'UTF-8', false);
10

Другие решения

Вы должны использовать {{{$a}}} потому что, например, Input может иметь HTML-тег. Laravel не будет фильтровать это.

Чтобы избежать SQL-инъекций, вы должны использовать привязку параметров для выполнения запросов, таких как:

$var = 1;
$results = DB::select('select * from users where id = ?', array($var));

и не:

$results = DB::select('select * from users where id = '.$var);
4

По вопросам рекламы [email protected]