私はEloquentでLaravel 4を使用しています。ユーザー入力を取得したら、$name=Input::get('name')
を使用してから、$a->name=$name;
を実行します。
関数Input::get
がSQLインジェクションとXSSから私を保護しているかどうかはわかりません。そうでない場合、入力をサニタイズするために何をする必要がありますか?
そして、ビューに値を表示するときは、{{$a}}
または{{{$a}}}
を使用しますか
ご挨拶と感謝。
LaravelはPDOのパラメーターバインディングを使用するため、SQLインジェクションについて心配する必要はありません。 this と読む必要があります。
Input :: get()は何もフィルタリングしません。
中括弧は、e()およびHTML :: entity()と同じです。これらはすべて、UTF-8をサポートするhtmlentitiesを呼び出します。
htmlentities($your_string, ENT_QUOTES, 'UTF-8', false);
たとえば、入力にはHTMLタグを含めることができるため、{{{$a}}}
を使用する必要があります。 Laravelはそれをフィルタリングしません。
SQLインジェクションを回避するには、次のようなクエリを実行するパラメータをバインドする必要があります。
$var = 1;
$results = DB::select('select * from users where id = ?', array($var));
ではなく:
$results = DB::select('select * from users where id = '.$var);