2017-02-19 29 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>并尝试使用两种机制显示保存的文本