检查文件权限
时间:2020-03-05 18:41:25 来源:igfitidea点击:
如何检查"文件权限",而不必通过" passthru()"或者" exec()"运行特定于操作系统的命令?
解决方案
回答
我们想通过检查文件权限来做什么?
编写安全代码时,"检查然后做"任何事情几乎总是不正确的。原因是在检查我们是否可以执行某项操作和实际执行某项操作之间,系统的状态可能会发生变化,从而导致执行结果有所不同。
例如,如果在写入文件之前检查文件是否存在,则不要检查是否已成功写入文件(或者不以足够详细的方式检查文件),然后再依赖于所写入文件的内容,实际上我们可能正在读取攻击者编写的文件。
因此,无需检查文件权限,只需执行权限检查成功后要执行的所有操作,即可正常处理错误。
回答
我们可以使用is_read(),is_executable()等命令。
回答
使用fileperms()函数
clearstatcache(); echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);