检查文件权限

时间:2020-03-05 18:41:25  来源:igfitidea点击:

如何检查"文件权限",而不必通过" passthru()"或者" exec()"运行特定于操作系统的命令?

解决方案

回答

我们想通过检查文件权限来做什么?

编写安全代码时,"检查​​然后做"任何事情几乎总是不正确的。原因是在检查我们是否可以执行某项操作和实际执行某项操作之间,系统的状态可能会发生变化,从而导致执行结果有所不同。

例如,如果在写入文件之前检查文件是否存在,则不要检查是否已成功写入文件(或者不以足够详细的方式检查文件),然后再依赖于所写入文件的内容,实际上我们可能正在读取攻击者编写的文件。

因此,无需检查文件权限,只需执行权限检查成功后要执行的所有操作,即可正常处理错误。

回答

我们可以使用is_read(),is_executable()等命令。

回答

使用fileperms()函数

clearstatcache();
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);