加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么要使用realpath()?

发布时间:2020-12-13 16:55:50 所属栏目:PHP教程 来源:网络整理
导读:PHP的realpath()在 manual中有详细描述,我只想了解哪些场景很有用.因为似乎我的代码与… /../path之类的路径运行良好,所以我不确定realpath()在哪里有用甚至是必要的. 解决方法 不好的消息是 当您使用“dot-dot-slash”作为路径时,您处于警告状态,使用Path T
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,那是多少点?这是多少个文件夹?哪里
文件?为什么不工作?
>维护,如果文件意外移动资源退出加载,
链接将用户发送到错误的页面,表单数据可能会被发送到
不正确的页面.如果一个文件需要移动所有资源
将要退出加载和所有链接
不正确需要更新.
>当网页变得更加复杂和观看时,它不会扩展
开始在相关链接将跨多个页面重用
相对于它们被包含在的文件.如果你有
然后将在每个页面上的HTML导航片段
亲戚会相对很多不同的地方.首先
当人们开始创建模板时,人们会意识到这一点
他们需要一种管理URL的方法.
> COMPUTED – 它们由您的浏览器实现(希望根据
到RFC).见RFC3986第5章.
> OOPS !!! – 错误或拼写错误可能导致蜘蛛陷阱.

对不起,我的英语不好… :)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读