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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,那是多少点?这是多少个文件夹?哪里
文件?为什么不工作?
>维护,如果文件意外移动资源退出加载,
链接用户发送到错误页面,表单数据可能会被发送到
不正确的页面.如果一个文件需要移动所有资源
将要退出加载和所有链接
不正确需要更新.
>当网页变得更加复杂和观看时,它不会扩展
开始在相关链接将跨多个页面重用
相对于它们被包含在的文件.如果你有
然后将在每个页面上的HTML导航片段
亲戚会相对很多不同的地方.首先
当人们开始创建模板时,人们会意识到这一点
他们需要一种管理URL的方法.
> COMPUTED – 它们由您的浏览器实现(希望根据
到Rfc).见RFC3986第5章.
> OOPS !!! – 错误或拼写错误可能导致蜘蛛陷阱.

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

脚本宝典总结

以上是脚本宝典为你收集整理的php – 为什么要使用realpath()?全部内容,希望文章能够帮你解决php – 为什么要使用realpath()?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。