一个重要的GET参数正被suhosin过滤。 当以下内容不起作用时,如何覆盖suhosin?
public_html / php.ini:
[suhosin]
suhosin.get.max_value_length = 2048
将suhosin.get.max_value_length等设置为NULL并使用户会话崩溃。
-
public_html / .htaccess:
<IfModule mod_php5.c>
php_value suhosin.get.max_value_length 2048
</IfModule>
没效果
-
(系统默认设置为:)
suhosin.get.max_value_length = 512
suhosin.get.max_value_length = 100000
被过滤的GET参数是576个字符长。
答案 0 :(得分:8)
我们可以通过重新构建$ _GET
来绕过suhosin// Override suhosin $_GET limitation
$_GET = array();
$params = explode('&', $_SERVER['QUERY_STRING']);
foreach ($params as $pair) {
list($key, $value) = explode('=', $pair);
$_GET[urldecode($key)] = urldecode($value);
}
答案 1 :(得分:1)
在Debian | Ubuntu系统上,您可以全局设置suhosin
个参数:
/etc/php5/conf.d/suhosin.ini
答案 2 :(得分:0)
还有一个更短的解决方案:
// Rebuild GET variables
parse_str($_SERVER['QUERY_STRING'], $_GET);