2

suhosin 正在过滤一个重要的 GET 参数。当以下不起作用时,如何覆盖 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 个字符。

4

3 回答 3

9

我们可以通过重新构建 $_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);
  }
于 2012-10-04T00:35:36.787 回答
1

在 Debian|Ubuntu 系统上,您可以在suhosin以下位置全局设置参数:

/etc/php5/conf.d/suhosin.ini
于 2014-02-13T11:48:10.343 回答
0

还有一个更短的解决方案:

// Rebuild GET variables
parse_str($_SERVER['QUERY_STRING'], $_GET);
于 2021-01-01T01:38:35.980 回答