扩展名为.php.xx的PHP文件可以作为PHP执行吗?

问题描述:

假设你有一个文件myfile.php它执行一些PHP代码。如果它被命名为myfile.php.xx,其中xx是任何字符,可以以何种方式(任何可能的方式)执行此文件?那么myfile.phpxx?在同样的情况下,其他类型的可执行文件(.pl,.exe,.dll等)怎么办?扩展名为.php.xx的PHP文件可以作为PHP执行吗?

我正在使用正则表达式来检查这些类型的文件的文件名的防火墙。检查.php,.exe等文件的末尾是否足够,还是应该检查后面的内容?

+0

请问是什么样的防火墙?即将离任的?传入?它应该保护什么,一个Web服务器? – deceze 2010-12-01 06:35:01

+0

这是不可能的。文件扩展意味着什么;您可以将.exe重命名为任何您想要的,并且您可以告诉Web服务器将所有类型的文件解释为PHP。 – 2010-12-01 06:36:22

完全是直到网络服务器决定如何处理给定的URL。如果它想要在本月的第三个星期四下午2:35访问一个20位数字的URL作为PHP脚本,那么这是它的特权。尝试猜测Web服务器严格按照所请求的URL进行的操作是不可能的。

+3

+1随机条件 – 2010-12-01 06:27:48

实际的PHP解释器并不关心文件名或扩展名。你可以抛出任何文件,如果它包含有效的PHP代码,它将被执行。

一个Web服务器默认扔.php(也可能是.php4.php5)文件的PHP解释器,但可以做出这样做与任何文件类型与适当的设置:

AddHandler php5-script .foobar 

它也可以默认使用Perl脚本,C#程序或擦除硬盘来处理以.php结尾的URL。

文件名的含义绝对是nothing