Php 如何覆盖suhosin最大值?
suhosin正在筛选一个重要的GET参数。 当以下情况不起作用时,如何覆盖suhosin public\u html/php.ini:Php 如何覆盖suhosin最大值?,php,suhosin,Php,Suhosin,suhosin正在筛选一个重要的GET参数。 当以下情况不起作用时,如何覆盖suhosin public\u html/php.ini: [suhosin] suhosin.get.max_value_length = 2048 <IfModule mod_php5.c> php_value suhosin.get.max_value_length 2048 </IfModule> 将suhosin.get.max_value_length等设置为NULL并使
[suhosin]
suhosin.get.max_value_length = 2048
<IfModule mod_php5.c>
php_value suhosin.get.max_value_length 2048
</IfModule>
将suhosin.get.max_value_length等设置为NULL并使用户会话崩溃
-
public\u html/.htaccess:
[suhosin]
suhosin.get.max_value_length = 2048
<IfModule mod_php5.c>
php_value suhosin.get.max_value_length 2048
</IfModule>
正在筛选的GET参数长度为576个字符。我们可以通过重新构建$\u 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);
}
在Debian | Ubuntu系统上,您可以在以下位置全局设置
suhosin
参数:
/etc/php5/conf.d/suhosin.ini
还有一个更短的解决方案:
// Rebuild GET variables
parse_str($_SERVER['QUERY_STRING'], $_GET);
您确定php.ini属于
public\u html
?如果mod_php5不存在,您如何为PHP提供服务?我不确定是否允许本地PHP.ini重写文件。但它确实有效,因为512变为NULL。您可以编辑全局php.ini
?尝试使用ini\u get
/ini\u set
?ini\u set不会有帮助,因为在脚本执行之前需要设置这些值?问题是ini设置何时因权限而无法工作。这刚刚救了我的培根好友,u rock!!