Я использую Laravel 4 с Eloquent.
Когда я получаю пользовательский ввод, я просто использую $name=Input::get('name')
а потом я делаю $a->name=$name;
Я не знаю, если функция Input::get
защити меня от SQL-инъекций и XSS. Если это не так, что я должен сделать, чтобы дезинфицировать вход?
И когда я покажу значение на мой взгляд, я должен использовать {{$a}}
или же {{{$a}}}
Привет и спасибо.
Laravel использует привязку параметров PDO, поэтому вам не стоит беспокоиться о внедрении SQL. Вы должны прочитать этот хоть.
Input :: get () ничего не фильтрует.
Тройные фигурные скобки выполняют те же функции, что и e () и HTML :: entity (). Все они называют htmlentities с поддержкой UTF-8:
htmlentities($your_string, ENT_QUOTES, 'UTF-8', false);
Вы должны использовать {{{$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);