【发布时间】:2016-02-24 10:21:12
【问题描述】:
我有一个页面,管理员可以在其中输入他们自己的自定义查询,只是为了采取额外的安全措施,我想禁止使用“SELECT”查询以外的任何查询。
我将如何检查查询是 SELECT 还是 DELETE/UPDATE/INSERT ... ,包括检测 SELECT INTO 之类的技巧。
我用的是Laravel框架,有这个功能
DB::select($query);
但不幸的是,它不会检查它是否是 select 语句或其他内容。
【问题讨论】:
-
你到现在都做了什么?我想看看你的基本工作,以便进一步建议你。
-
您应该使用删除、更新、插入等不允许的单词创建一个数组,然后在 foreach 循环中检查您对这些单词的查询。如果它包含其中之一,die();
-
@FakhruddinUjjainwala 我还没有决定哪种方式最好,如果没有其他方式我只会添加“被阻止的关键字”
-
查看link
标签: php mysql sql regex laravel