查询字符串以“.php”结尾时的Apache2 + fcgid下载脚本

时间:2012-10-23 16:19:37

标签: php apache2 debian mod-fcgid

我正在将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

如何更改配置以忽略查询字符串?

此致

1 个答案:

答案 0 :(得分:0)

我认为ServerFault的问题更好。但我认为

?inc=test.php 

不是很好的解决方案。我希望您阻止远程包含攻击您的网站并从您的服务器读取文件。

现在,您的包含文件每次都是php文件,然后从您的网址中删除 .php 并将其添加到您的脚本中。

但是当你在脚本中定义它时它会更好,那么你没有任何问题。

$incFile = false;

switch($_GET['inc']):
    case 'test':
        $incFile = 'test.php';
    break;
default:
    $incFile = 'nofile.php';