如何覆盖suhosin最大值?

时间:2012-10-04 00:05:12

标签: php suhosin

一个重要的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个字符长。

3 个答案:

答案 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);