我有一个使用$ _GET来解析URL的简单自定义MVC应用,并且我已经在我的开发服务器以及使用php 7.1的一些其他虚拟主机上运行了它……但是我正在尝试使用x10hosting免费的灯托管,并且从$ _GET传递的数据通过403 ...
我已经证明它可以在其他服务器以及我自己的开发服务器上使用
echo '<pre>', $route->path, $_GET['url'], '</pre>';
当转到网址http://app/admin时...循环中的这一行为我提供了应有的期望...
/admin
adminadmin
但是在x10的服务器上,我得到了
/403.shtml
admin403.shtml
我尝试使用urlencode($ _ GET)编码为base64,并使用.paccess禁用.htaccess中的mod_sec
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
这两个解决方案都不起作用...我几乎可以肯定这是服务器配置问题,但是访问范围几乎仅限于.htaccess和php.ini...。我有一段时间没有接触过php或apache了,有点丢失...任何帮助将不胜感激
答案 0 :(得分:0)
这听起来像是mod_security类型的问题。而且,正如您所发现的,您是unable to disable mod_security on the free hosting platform。
我在许多共享主机上遇到了mod_sec规则,这些规则只是根据某些参数名阻止了请求(据说阻止了常见的XSS尝试)。 url
是常见的。 site
是另一个。只需更改参数名称即可。
“免费”托管帐户总是会有一些限制。如果这是唯一使您退缩的东西,那么您很幸运。