我正在将apache2 + php服务器迁移到mod_fcgid,当我尝试访问以“.php”结尾的链接时,服务器会打印出php源代码。
GET: http://host/?inc=test.php
Does download of the index.php script
但是当我修复index.php时。
GET: http://host/index.php?inc=test.php
Show the correct page content
在我的网站配置中:
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride AuthConfig FileInfo Limit
AddHandler fcgid-script .php
FcgidWrapper /var/www/cgi-bin/fcgi-starter .php
其中fcgi-starter是自定义sh来包装/ etc / php5 / cgi
#!/bin/sh
PHPRC=/etc/php5/cgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/lib/cgi-bin/php
如何更改配置以忽略查询字符串?
此致
答案 0 :(得分:0)
我认为ServerFault的问题更好。但我认为
?inc=test.php
不是很好的解决方案。我希望您阻止远程包含攻击您的网站并从您的服务器读取文件。
现在,您的包含文件每次都是php文件,然后从您的网址中删除 .php 并将其添加到您的脚本中。
但是当你在脚本中定义它时它会更好,那么你没有任何问题。
$incFile = false;
switch($_GET['inc']):
case 'test':
$incFile = 'test.php';
break;
default:
$incFile = 'nofile.php';