【问题标题】:Allowing special characters and code injection允许特殊字符和代码注入
【发布时间】:2017-06-27 00:09:10
【问题描述】:

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

',.!&()_-

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

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

【问题讨论】:

标签: php mysql laravel security


【解决方案1】:

除非你正在使用raw SQL - 你的例子中没有 - 然后 Laravel handles 这个给你。来自documentation

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

从 5.4 开始就是这样,至少从 4.1 开始就是这样。

【讨论】:

    猜你喜欢
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多