2017-02-19 7 views
0
$this->validate($request, [ 
    'state' => 'required', 
    'zipcode' => 'required', 
    'address' => 'required', 
    ],[ 
    'state.required'=>'state required', 
    'zipcode.required'=>'zipcode required', 
    'address.required'=>'address required', 
    ]); 
    $Userdata = Userdata::where('user_id',Auth::user()->id)->first(); 
    $userinfo->update(Input::only('state', 'zipcode','address')); 

これはSQLインジェクションに対して安全ですか? 引用符がエスケープしないでデータベースに保存されていることがわかりました dbへのダイレクトストア入力は安全ですか?エスケープデータは必要ありませんか?セキュリティの入力:: getと雄弁

+1

いいえ手動でデータをエスケープする必要はありません。ララヴェルはあなたのためにそれを処理します – zgabievi

答えて

2

LaravelはPDOプリペアドステートメントを使用するため、有効な方法で使用しない生のSQLクエリを必要としない限り、SQLインジェクションについて心配する必要はありません。

ちょうどあなたのコードの代わりに追加するには:あなたは、むしろ使うべき

$userinfo->update(Input::only('state', 'zipcode','address')); 

$userinfo->update($request->only('state', 'zipcode','address')); 

(しかし、それはSQLインジェクションと共通で何もしています)

0

アイデアがありますデータの保存方法ではありません。データをどのように表示するかについてです。 {{ content }}{!! content !!}を使用して表示するメカニズムを知るには、 をLaravel bladeと読んでください。 <script>alert("test")</script>を保存し、2つのメカニズムを使用して保存したテキストを表示してください。