我是PHP的新手。如果文件是可执行的,我如何在PHP中检查上传文件?我找到了这个函数is_executable但是我不确定这个函数是否只检查文件名...如果我在upload.txt中更改upload.exe的名称怎么办?谢谢!
答案 0 :(得分:1)
在类Unix系统(macOS,所有Linux版本和其他一些版本)上,如果文件的{execute}位设置为is_executable()
,TRUE
将返回x
ls -l
}})。当需要确定文件是否可执行时,文件名不会对系统起任何作用。
新上传的文件永远不会设置此位;该文件由PHP解释器生成,没有理由设置它。
在Windows上,is_executable()
询问操作系统文件是否可执行。操作系统查看文件头以查看它是否看起来像PE
executable format。这包括.exe
和.dll
文件以及其他一些文件类型。通过将实际可执行文件重命名为is_executable()
,无法在Windows上欺骗upload.txt
。
但是,在Windows上,通过在资源管理器中双击它们可以打开的所有文件格式都可以“执行”。 .html
个文件,f.e。在默认浏览器中打开。即使is_executable()
为FALSE
返回$data = array();
foreach ($row as $rowk) {
$data[] = array(
'message' => $row['traditionalmessage'],
'phone' => $row['telMobile']
);
break;
}
echo json_encode($data);
,也可以使用任何PHP functions that execute a program“启动”它们。