如何检查file permissions
,而无需通过passthru()
或exec()
运行的操作系统特定的命令?检查文件权限
Q
检查文件权限
14
A
回答
17
使用fileperms()功能
clearstatcache();
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
0
你想干什么通过检查文件的权限吗?
在编写安全的代码,它几乎总是不正确的“检查,然后做”任何事情。原因是在检查你是否可以做某件事情并且真正做到它之间,系统的状态可能会发生变化,因此这样做会产生不同的结果。
例如,如果你检查是否写一个前一个文件存在,不检查是否成功写的文件(或不详细,够时尚检查),再后来取决于内容您写的文件,实际上您可能正在读取攻击者写入的文件。
因此,而不是检查文件的权限,只是做不管它是什么,你打算做的,如果权限检查成功,并妥善处理错误。
11
可以使用is_readable(),is_executable()等命令。
+1
请注意,is_writable()不检查组成员资格(自PHP 5.5.18开始)。 – cgeisel 2014-11-12 22:30:01
1
使用fileperms()功能和子:
substr(decoct(fileperms(__DIR__)), -4); // 0777
substr(decoct(fileperms(__DIR__)), -3); // 777
对于文件:
substr(decoct(fileperms(__FILE__)), -4); // 0644
substr(decoct(fileperms(__FILE__)), -3); // 644
更换__FILE__
和__DIR__
与路径或变量
6
真实编码器使用位运算,而不是字符串;)这是更优雅的处理权限的方式:
function checkPerms($path)
{
clearstatcache(null, $path);
return decoct(fileperms($path) & 0777);
}
相关问题
- 1. 检查文件权限
- 2. 检查.exe文件的权限级别
- 3. 检查文件夹权限保存VBA
- 4. 检查权限
- 5. Android检查权限
- 6. 如何使用Haskell检查Linux文件的文件权限?
- 7. 通过T-SQL检查文件夹和文件权限
- 8. 如何检查SharePoint文档权限?
- 9. Android Marshmallow检查权限
- 10. 检查Facebook上的权限
- 11. 静态检查rest_framework权限
- 12. 检查权限请求
- 13. 在HDFS中检查权限
- 14. 位置权限检查和授权
- 15. 文件权限
- 16. 文件权限
- 17. 如何检查文件系统的权限?
- 18. 跨多个网络共享检查文件权限?
- 19. 在Java中检查指定用户帐户的文件权限
- 20. 如果文件权限大于755,如何检查Perl?
- 21. 不绕过遍历检查的NTFS文件权限
- 22. 在Python中使用Python检查文件权限
- 23. 使用php检查子文件夹的htaccess权限
- 24. 如何检查写入目录或文件的权限?
- 25. 检查在Windows/Linux中写入文件权限
- 26. 检查JCE无限强度管辖权策略文件
- 27. 检查非高架用户在Windows上的文件权限
- 28. 如何检查只有列出访问权限的文件夹?
- 29. 在linux中检查原始文件权限的方法
- 30. 如何检查在C#文件夹的读写权限
总有一些可行的原因,检查权限,也许他建立一个守护进程固定的权限,这没有按”不要依赖他的脚本来读取或写入文件,因为不同的过程将会这样做。 – 2011-05-20 14:44:56
另一个例子是一个rewriteMap程序,它作为基于某些文件权限的门。 – puk 2012-03-21 16:45:08