- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 PHP 项目中使用 MeekroDB。对于某些查询,我需要传递任意字段名称来进行排序。 meekro 站点上没有 ORDER BY 子句的示例。
如何安全地传递字段名称并避免 SQL 注入(inject)漏洞?我意识到我可以事先用有效字段列表检查每个字段名称,但我试图使这段代码更通用化为基本的“get”函数:function get(Array $filters, Array $sort_by)
%b 占位符(反引号)是否足以在传递字段名称时防止任意代码注入(inject)?
例如:
SELECT * FROM table1 ORDER BY %b
或者对于多个字段:
SELECT * FROM table1 ORDER BY %lb
这样安全吗?
另外,我如何根据需要任意包含 DESC 或 ASC 修饰符?
最佳答案
是的,您可以安全地使用 b
和 lb
来达到目的,因为它们都是使用 formatTableName 实现的安全的方法。
不幸的是,方向修饰符应该像这样用手 sanitizer
$dirs = ["ASC","DESC"];
$key = array_search($_GET['dir'], $dirs); // see if we have such a value
$dir = $dirs[$key]; //if not, first one will be set automatically. smart enuf :)
$query = "SELECT * FROM table1 ORDER BY %b $dir"; //value is safe
关于php - MeekroDB - 如何安全地传递 ORDER BY 字段名称和参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024865/
对不起,我是 MeekroDB 库的新手,我想知道如何在登录过程中检查行; $query = DB::query("SELECT * FROM users WHERE username=%s",$us
我想在 MeekroDB 中编写这样的查询: SELECT * FROM `tablename` WHERE `id` IN (3,1,2) ORDER BY FIELD (`id`,3,1,2) 我
这确实是 MeekroDB 独有的问题,只是想了解一下 Left_Join。 我有 2 个表:comp_checklist 和 comp_checklist_items 我想从 comp_checkl
我有下表: CREATE TABLE `Plot` ( `idPlot` int(11) NOT NULL, `ListPrice` decimal(9,2) DEFAULT NULL,
我在 PHP 项目中使用 MeekroDB。对于某些查询,我需要传递任意字段名称来进行排序。 meekro 站点上没有 ORDER BY 子句的示例。 如何安全地传递字段名称并避免 SQL 注入(in
我在 PHP 脚本上有以下代码: $DB = new MeekroDB($host, $user, $pass, $dbIntra, $port, $encoding); $DB->throw_
我正在使用 MeekroDB 和 PHPMailer 构建一个 PHP 网站。我不知道为什么,但今天我收到了这个仅在我的桌面上的 PHP 错误。在我的笔记本电脑上一切正常。 我尝试重新安装 MySQL
我尝试按特定字母数字范围 1-3 和 A-B 对前 15 个匹配项进行排序,但在输出中没有得到任何结果。使用MeekroDB 。不知道如何将我这里的内容转化为他们的方法。 $results = DB:
我有一个包含以下行的 PHP 脚本: require_once 'meekrodb.2.1.class.php'; DB::$user = 'usr'; DB::$password = 'pwd';
我是一名优秀的程序员,十分优秀!