【发布时间】:2010-03-29 07:38:16
【问题描述】:
我得到了这个 SQL 查询,其中 post_title 取自 $_GET
$sql = "从帖子中选择 ID,其中帖子。post_title = '5-design-web-colourful'";
消毒并使其更安全的最佳方法是什么?
编辑:(根据要求)我正在尝试创建一个插件,用于隐藏特定类别(名为私人)及其所有未登录访客的帖子。我已经连接到“pre_get_posts”和“posts_selection”,能够控制如何为管理员、撰写它们的成员、其他成员和访客显示特定的帖子和类别。
类别必须不存在。所以它不能显示在前端的cat存档页面上。
我知道这与问题无关,因为 iask 只是如何清理帖子的名称/标题。仅此而已。
【问题讨论】:
-
所以你要确保标识符没有被篡改。列名
$wpdb->posts.post_title是唯一的“问题”还是$wpdb->posts也是一个问题? -
VolkerK:我读到这个问题的意思是“5-desain-web-colourful”(即 post_title 字段的值)取自 $_GET。你能澄清一下吗,justjoe?
-
@all :抱歉,这是 wordpress 查询。我会先编辑那些 sql
-
现在,在 this 版本的查询中,您不必清理 anything。这是一个没有可变部分的静态查询。您可能想要解释您想要达到的目标。现在越来越有可能这个问题是重复的。
-
我并不无聊,但(没有冒犯)可能有点恼火......因为这个问题有些问题。这可能是一个很好的问题,但现在恕我直言,这是一团糟。它开始是一个 mysql 问题(只有标识符作为变量),你得到了通用的 mysql_escape_lalala 答案(此时可能是错误的),结果你真的想要变量 sql 参数,好吧 real_escape_string 可能是它。突然它变成了一个 wordpress 问题(-> real_escape_string 不好),WP_QUERY 参与其中。现在是 wpdb(可能是 WP_QUERY 和 wpdb)......来吧,它有点到处都是。