验证字符串时允许这些特殊字符是否安全?目前,用户可以从浏览器发送字母数字和以下特殊字符:
',.!&()_-
我主要担心的是代码注入。我还在学习Laravel,我知道它处理了很多安全问题。我想确保我采取坚实的预防措施以保证良好的安全性。
我有以下代码,它使用PHP Laravel框架在服务器端进行验证:
$this->validate($request, [
'str' => 'bail|required|regex:/^[a-zA-Z0-9 \',.!&_-]+$/u'
]);
$search_str = $request->str;
$query = Story::where('story_text', 'LIKE', '%'.$search_str.'%');
这是否足够安全还是我应该做的更多?
答案 0 :(得分:2)
除非您使用的是raw SQL - 您不在自己的示例中 - 否则请使用Laravel handles。来自documentation:
Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击。无需清除作为绑定传递的字符串。
从5.4开始就是如此,至少从4.1开始就是如此。