php – 为什么要使用realpath()?
PHP的realpath()在
manual中有详细描述,我只想了解哪些场景很有用.因为似乎我的代码与… /../path之类的路径运行良好,所以我不确定realpath()在哪里有用甚至是必要的.
解决方法
不好的消息是
当您使用“dot-dot-slash”作为路径时,您处于警告状态,使用Path Traversal攻击,此攻击旨在访问存储在Web根文件夹外部的文件和目录.通过使用“dot-dot-slash”(../)序列及其变体来操作引用文件的变量,可以访问存储在文件系统上的任意文件和目录,包括应用程序源代码,配置和关键系统文件,受系统操作访问控制的限制.攻击者使用“../”序列移动到根目录,从而允许通过文件系统进行导航. 可以使用路径上注入的外部恶意代码执行此攻击,例如Resource Injection攻击.要执行此攻击,不必使用特定工具;攻击者通常使用蜘蛛/爬虫来检测所有可用的URL. 这种攻击也称为“dot-dot-slash”,“目录遍历”,“目录攀爬”和“回溯”. 你可以检查一下.. 而且,好消息是…… realpath()将允许您将任何可能包含相对信息的路径转换为绝对路径.然后,您可以确保该路径位于您要允许访问的某个子目录下. 对于URL等绝对路径,可以控制子域和协议.通过一个不起眼的子域进入的人将被汇入正确的子域.您可以根据需要在安全和非安全之间来回跳转.并且,使用它可以是可配置的,开发人员喜欢绝对的东西. 使用绝对URL时,您可以设计整洁的算法. URL可以进行配置,以便只需在单个配置文件中进行一次更改即可在站点范围内更新URL. 但如果你看看这个: <a href=“index.php?q=”>index.php?q=</a> <link src=“../.././../css/default.css” /> 你不是混淆了吗? > Confusing,那是多少点?这是多少个文件夹?哪里 对不起,我的英语不好… :) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |