Suhosin 每个 URL 有例外吗?

Suhosin 每个 URL 有例外吗?

我在用简单ID作为我的 OpenID 提供商,如果我登录通过类似于 StackExchange 上的页面,GET 请求的一个参数被 Suhosin 删除。变量的名称是s,我推测它负责登录后的“返回 URL”部分。

只要我之前已经登录过 SimpleID,所有这些都不是问题。但是,一旦我想要通过 OpenID 登录的网站出现在 SimpleID 的登录屏幕上,由于丢弃了变量,重定向回我来自的网站就不再起作用了。

是否有一种方法可以基于每个虚拟主机或每个 URL 进行配置,以忽略参数s超过(全局)设置限制的 GET 请求的最大长度?

我正在使用 Apache 2.2,所以我想知道 Suhosin 是否存在类似于在服务器配置中设置 PHP ini 变量的机制。

答案1

如果您在 Apache 中以 mod_php 形式运行 PHP,则可以使用 .htaccess 文件禁用 Suhosin(或修改其配置)。只需在 SimpleID 目录中添加(或修改).htaccess 文件即可添加:

php_flag suhosin.simulation 开启

为了进行测试(只是为了检查 Suhosin 是否真的是问题所在),创建一个仅包含 phpinfo() 语句的简单 PHP 文件,将其加载到浏览器中并检查 Suhosin 部分是否显示配置更改。然后测试使用 SimpleID 登录。

如果一切顺利,并且 Suhosin 确实是问题所在,您可以修改 .htaccess 文件来更改 suhosin.get.* 选项,这样您就不必完全禁用 Suhosin。

如果您使用 CGI、FCGI、suPHP 或类似程序运行 PHP,则 .htaccess 可能会或可能不会用于更改 PHP 选项(这取决于 Apache 配置),但在这种情况下,您可以访问本地 php.ini 文件,您可以修改并直接设置 Suhosin 选项。

相关内容