使用$_SERVER[‘REQUEST_URI’]是否安全?

时间:2013-08-18 作者:Firsh - justifiedgrid.com

我看过其他答案,我明白了$_SERVER[\'REQUEST_URI\'] 通常是推荐的,并且是获取当前页面URI的公认答案$_SERVER[\'HTTP_HOST\'].

我查看了WP源代码,它在那里也被广泛使用。

但我发现一些关于它在IIS上不起作用的争议。也许这只是过去的一个问题?我甚至试着在我的电脑上安装IIS来检查它,但我无法配置它,只是为了证实这一点,这似乎有些过头了。

它似乎是唯一包含我想要的信息的服务器变量:

/窗格玻璃塞/nggallery/tags/dark-colors/

突出显示的示例部分是通过NextGEN Gallery 2添加的,只能通过$_SERVER[\'REQUEST_URI\'], 没有别的了。以前,它可以使用get\\u query\\u var访问,现在不再使用了。

如果$_SERVER[\'REQUEST_URI\'] 未设置,通过手动设置并基于PHP_SELFQUERY_STRING 带来不等价的结果。

那么依靠它安全吗$_SERVER[\'REQUEST_URI\'] 是否始终可用于WP安装?我想这是因为WP核心代码使用它,但我不得不问。

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

$_SERVER[\'REQUEST_URI\'] 在WordPress中不会为空,因为它已填充wp_fix_server_vars() (文件wp-includes/load.php).

此函数在中调用wp-settings.php 在加载任何插件之前。所以你可以使用它。

但总是逃避价值。它是全局的,可以由任何其他代码更改,因此您不能信任它的值。

另一种情况是根据访问值

filter_input(INPUT_SERVER, \'REQUEST_URI\'); 
WordPress的写访问不会影响该值,因为filter_input() 总是取原始值。因此,虽然这是一种更现代、更干净的方法,但在某些情况下可能会失败。另请参见this thread on Stack Overflow.

结束

相关推荐

通过根目录中的.htaccess有选择地禁用PHP

我正在阅读有关保护WordPress的内容,其中一个常用的建议技巧是使用。禁止在中执行PHP的htaccess文件wp-content 和wp-includes. 然后我读到another hack 这涉及放置在根目录中的后门文件。这让我想到了如何扩展这项技术。这样做有意义吗:在根目录中。htaccess:<Files *.php> Order Deny,Allow Deny from all </Files> <Fi