【发布时间】:2013-10-08 18:26:54
【问题描述】:
我在 Stackoverflow 学到了很多东西,这是我最喜欢的编程网站,在这里研究我找到了许多问题的答案。 现在我已经完成了我需要知道的代码:它有任何安全漏洞吗?
它需要从 url 中获取域名,以便查看目录中是否存在包含该表达式的 var 文件并输出其内容。 非常感谢您的帮助!
如果我使用 htmlspecialchars 和 preg_replace 清理 HTTP_HOST 就足够了吗?使用 strip_tags 将是矫枉过正,不是吗?从数组中删除那些特殊字符也是多余的,你不觉得吗?
编辑:
我将更改代码并为包含文件本身添加保护。非常感谢!
【问题讨论】:
-
您永远不应该让任何用户提供的数据到达任何处理文件系统的操作附近,尤其是在像
include这样危险的操作中。这并不容易被利用,但我相信有人可以弄清楚如何做到这一点。 -
为什么要检查域名的文件是否存在?您是否知道 HTTP_HOST 是用户提供的 var,它几乎可以包含任何内容?
-
这对我来说一直是个难题,但我确实需要从 HTTP_HOST 获取域。如果我不仅可以去除域扩展名,还可以去除 "/" 、 "." , "=" , ";"等等,难道不能解决问题吗?
-
@echolearning 你不能简单地保留一个白名单吗?
-
为什么不呢?您绝对可以使用某些 url,因为只有您控制的域才会包含
*var.php文件。
标签: php security include sanitize whitelist