在我的query_posts语句中使用GET是不是很糟糕? (WP)

时间:2011-08-24 11:17:08

标签: php mysql wordpress

$category = $_GET['sortBy'];
query_posts(array('order' => 'ASC', 'cat' => $category));

这是安全隐患吗? 我应该消毒吗?

4 个答案:

答案 0 :(得分:1)

在wordpress中,这不是必需的。但请记住这一点。

答案 1 :(得分:0)

您应始终清理来自不受信任来源的数据;由于$ _POST和$ _GET(以及$ _COOKIE)数据可以被用户轻松编辑以包含恶意代码/垃圾值,因此您应该始终验证其内容。

通常,我建议调用mysqli_real_escape_string(),或者至少使用预准备语句。但是,您似乎正在使用WordPress,因此您需要查看WordPress文档,了解它们如何(以及如果)清理传递给其query_posts()函数的参数。

答案 2 :(得分:0)

是的,您应该清理所有$_POST$_GET$_COOKIE个变量。您可以使用许多不同的函数,其中之一是mysql_real_escape_string()。你可以在互联网上阅读很多相关内容。可能对您有用的文章是this一个。

除此之外,我总是建议您使用$_POST变量,因为用户在提交表单时看不到它们。虽然$_GET变量显示在地址栏中(例如:http://www.website.com/submit.php?name=John&surname=Doe&activationkey=81sd6s1)。这使得非常易于为具有不良意图的用户进行修改。编辑$_POST变量需要更多技能。

答案 3 :(得分:0)

Wordpress会自动清理它,你不必在此担心它。但是,在这些情况下,请使用

mysql_real_escape_string();
mysqli_real_escape_string();