繁体   English   中英

如何清理这个特定的mysql查询?

[英]How to sanitize this particular mysql query?

我收到此SQL查询,其中post_title从$ _GET中获取

$ sql =“从帖子中选择ID,其中posts.post_title ='5-design-web-colourful'”;

对此进行消毒并使其更安全的最佳方法是什么?

编辑:(按要求)我正在尝试创建一个插件,该插件可为每个未记录的来宾隐藏特定类别(命名为private)及其所有帖子。 我已经钩入“ pre_get_posts”和“ posts_selection”,它们能够控制如何显示管理员的特定帖子和类别,编写这些帖子的成员,其他成员以及来宾。

该类别必须不存在。 因此它不能显示在前端的cat存档页面上。

我知道这与问题无关,只是如何清理帖子的名称/标题。 而已。

假设您使用MySQL,请使用mysql_real_escape_string

虽然这不能直接回答您的问题,但是更好的方法是使用绑定参数。 这样可以保护您免受此类攻击的所有侵害。

http://php.net/manual/zh/pdo.prepared-statements.php

http://www.php.net/manual/zh/pdostatement.bindparam.php

例如:

$sth = $dbh->prepare("select id from $wpdb->posts where $wpdb->posts.post_title = ?");
$sth->bindParam(1, $str);
$sth->execute();

注意:这假定$ wpdb是安全的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM