2017-02-19 71 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注入安全嗎? 我發現引號存儲在數據庫中而沒有轉義 直接存儲輸入到數據庫是安全的嗎?我不需要轉義數據?輸入的安全性:: get和口才

+1

不,您不需要手動轉義數據。 Laravel將爲您處理 – zgabievi

回答

2

Laravel使用PDO準備語句,所以你不需要擔心SQL注入,除非你不需要原始的SQL查詢,你沒有以有效的方式使用。

只是在代碼中添加,而不是:

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

你應該寧願使用:

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

(但它沒有任何共同之處與SQL注入)

0

的想法是不是你如何保存數據。這是關於你如何顯示數據。 閱讀Laravel blade知道使用{{ content }}{!! content !!}顯示的機制。 以確保: 保存<script>alert("test")</script>並嘗試使用兩種機制顯示保存的文本