使用定制的Query_var会造成安全漏洞吗?

时间:2012-01-06 作者:djb

假设我在函数中放入以下代码。php

function add_my_query_vars($qvars) {
  $qvars[] = "new_var";
  return $qvars;
}

add_filter(\'query_vars\', \'add_my_query_vars\');
如果有人要求my.site.com/?new_var=[MALICIOUS CODE], 它们会造成任何损坏吗?如果没有,为什么没有?

Edit for clarity: 我知道用户输入应该被认为是有害的。我的问题是,WP是否审查将其转换为$WP\\u查询的数据。

1 个回复
最合适的回答,由SO网友:Geert 整理而成

无论您是否注册new_var 作为query\\u var,所有GPC数据(GET、POST、COOKIE)都应被视为已被污染。基本上,这些数据是用户输入的。这意味着您无论如何都需要清理和验证数据。

常见的清理方法包括将变量强制转换为特定类型(如整数或字符串),使用正则表达式验证字符串等。如果您正在访问$_GET 直接获取数据,不要忘记isset()empty() 首先检查以防止出现“未定义索引”通知。

Edit: 首先,我的答案适用于通过PHP的superglobals访问GPC数据。也就是说,如果你使用get_query_var() 在我看来,要检索变量,仍然需要清理自己注册的变量。当然,WP将清理其标准查询变量。请参见parse_query() 中的函数wp-includes/query.php.

结束

相关推荐

Security and .htaccess

大约一个月前,我在一个与爱好相关的托管服务器上创建了一个WordPress博客。所以,我目前还不熟悉这一点。由于我担心安全性,我做的一件事就是安装插件WP安全扫描。根据插件结果,我的网站会被检查出来,但我在结果中看到的是一个红旗:文件。wp admin中不存在htaccess/(我在那里ssh了,它不存在)好的,所以我在这个问题上做了大量的搜索,找到了太多的信息。htaccess。我在WordPress上经历了强化WordPress。org网站等,也遇到了这篇文章:http://digwp.com/201