如何使用.htaccess设置suhosin.request.max_ *?只有suhosin.post.max_ *工作

时间:2012-05-28 11:29:43

标签: .htaccess suhosin

我在我的ini文件中设置了suhosin.perdir ='p'。我现在想要在每个文件夹的基础上更改suhosin ini设置。

以下所有工作(在所需文件夹中运行phpinfo()显示更改的值):

php_value suhosin.post.max_array_depth 100
php_value suhosin.post.max_array_index_length 128
php_value suhosin.post.max_name_length 128
php_value suhosin.post.max_value_length 2000000
php_value suhosin.post.max_totalname_length 512
php_value suhosin.post.max_vars 1000

但是当我还添加.request设置(我明白是.post设置的上限)时,它们不会改变:

php_value suhosin.request.max_array_depth 100
php_value suhosin.request.max_array_index_length 128
php_value suhosin.request.max_name_length 128
php_value suhosin.request.max_value_length  2000000
php_value suhosin.request.max_totalname_length 512
php_value suhosin.request.max_vars 1000

screenshot for phpinfo

你知道我还有什么需要检查/安装的吗?我忘记了吗?

谢谢! 马太

1 个答案:

答案 0 :(得分:4)

好的,我终于找到了解决方案。当我找到这个post时,我打算下载Suhosin代码,然后解释perdir" p"指令只影响post变量:

/* no deactivation so check the flags */
while (*tmp) {
    switch (*tmp) {
        case 'l':
        case 'L':
            SUHOSIN_G(log_perdir) = 1;
            break;
        case 'e':
        case 'E':
            SUHOSIN_G(exec_perdir) = 1;
            break;
        case 'g':
        case 'G':
            SUHOSIN_G(get_perdir) = 1;
            break;
        case 'c':
        case 'C':
            SUHOSIN_G(cookie_perdir) = 1;
            break;
        case 'p':
        case 'P':
            SUHOSIN_G(post_perdir) = 1;
            break;
        case 'r':
        case 'R':
            SUHOSIN_G(request_perdir) = 1;
            break;
        case 's':
        case 'S':
            SUHOSIN_G(sql_perdir) = 1;
            break;
        case 'u':
        case 'U':
            SUHOSIN_G(upload_perdir) = 1;
            break;
        case 'm':
        case 'M':
            SUHOSIN_G(misc_perdir) = 1;
            break;
    }
    tmp++;
}

如果您希望每个帖子和请求都有perdir选项,则需要编辑 php.ini

suhosin.perdir=pr

.htaccess

php_value suhosin.perdir pr

所以 perdir 的值为 pr