首页 文章

我是否需要清理用户输入Laravel

提问于
浏览
8

我正在使用Laravel 4和Eloquent . 当我得到用户输入时我只使用 $name=Input::get('name') 然后我做 $a->name=$name;

我不知道函数 Input::get 是否保护我免受SQL注入和XSS的攻击 . 如果没有,我需要做些什么来消毒输入?

并且,当我在我的视图中显示值时,我应该使用 {{$a}}{{{$a}}}

问候和感谢 .

2 回答

  • 10

    Laravel使用PDO的参数绑定,因此SQL注入不是你应该担心的 . 你应该阅读this .

    Input :: get()不会过滤任何内容 .

    三个花括号与e()和HTML :: entities()相同 . 所有这些都称为支持UTF-8的htmlentities:

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

    您应该使用 {{{$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);
    

相关问题