我有点新的PHP。如果文件可执行,我如何检查PHP中的上传文件?我发现此函数IS_Executable,但我不确定此功能是否仅检查文件的名称...如果我更改upload.txt中的upload.exe的名称怎么办?谢谢!
在类似于Unix的系统(MACOS,所有Linux口味和其他一些(上,is_executable()
返回TRUE
,如果文件具有" execute"位设置(x
上的CC_3(。当文件需要确定文件是否可执行时,该文件的名称不起作用。
一个新的上传文件从来没有设置。该文件由PHP解释器生成,没有理由将其设置。
在Windows上,is_executable()
询问文件是否可执行。操作系统查看文件标头,以查看它是否看起来像PE
可执行格式。这包括.exe
和.dll
文件以及其他一些文件类型。不可能通过重命名upload.txt
的真实可执行文件来欺骗窗口上的is_executable()
。
但是,在Windows上,所有文件格式都可以通过在Explorer中双击它们打开,可以"执行"。.html
文件,F.E。在默认浏览器中打开。它们可以使用执行程序的任何PHP函数"启动",即使is_executable()
返回为他们返回FALSE
。