Laravel:防止SQL注入通配符或类似条款

时间:2018-06-28 16:12:33

标签: laravel eloquent

我想问 ,如何防止SQL注入通配符或Like子句

的脚本

这是我的剧本

$user_location = DB::table('store_locator')
->Where('city','like','%' . $inpaddress . '%')
->orWhere('store_address','like','%' . $inpaddress . '%')
->get();

可以像这样使用吗?

'%'。 $ inpaddress。 '%'

谢谢。希望您能提出更好的建议。谢谢。

1 个答案:

答案 0 :(得分:0)

Laravel默认情况下会很好地防止sql注入。如果您仍然有疑问,并且您的PDO配置有些混乱,您可以尝试。

 'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
            'options'   => [
                \PDO::ATTR_EMULATE_PREPARES => false
            ]
        ],

\PDO::ATTR_EMULATE_PREPARES => false设置为

'options'   => [
                    \PDO::ATTR_EMULATE_PREPARES => false
                ]