我得到了这个SQL查询,其中post_title取自$ _GET
$ sql =“SELECT ID FROM posts WHERE posts.post_title ='5-design-web-colorful'”;
对消毒剂进行消毒并使其更安全的最佳方法是什么?
编辑:(根据要求)我正在尝试创建一个插件,用于隐藏特定类别(名为private)以及每个未登录的guest虚拟机的所有帖子。我已经挂钩'pre_get_posts'和'posts_selection'能够控制如何显示admin的特定帖子和类别,编写它们的成员,其他成员和访客。
该类别必须不存在。因此无法在前端的cat存档页面上显示。
我知道这与问题没有关系,因为我知道如何清理帖子的名称/标题。仅此而已。
答案 0 :(得分:3)
使用mysql_real_escape_string
,假设您使用MySQL。
答案 1 :(得分:3)
虽然这不能直接回答您的问题,但更好的方法是使用绑定参数。这可以保护您免受此类别的所有攻击媒介的攻击。</ p>
http://php.net/manual/en/pdo.prepared-statements.php
http://www.php.net/manual/en/pdostatement.bindparam.php
对于你的例子:
$sth = $dbh->prepare("select id from $wpdb->posts where $wpdb->posts.post_title = ?");
$sth->bindParam(1, $str);
$sth->execute();
注意:这假设$ wpdb是安全的!