允许特殊字符和代码注入

时间:2017-06-27 00:09:11

标签: php mysql laravel security

验证字符串时允许这些特殊字符是否安全?目前,用户可以从浏览器发送字母数字和以下特殊字符:

',.!&()_-

我主要担心的是代码注入。我还在学习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.'%');

这是否足够安全还是我应该做的更多?

1 个答案:

答案 0 :(得分:2)

除非您使用的是raw SQL - 您不在自己的示例中 - 否则请使用Laravel handles。来自documentation

  

Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击。无需清除作为绑定传递的字符串。

从5.4开始就是如此,至少从4.1开始就是如此。