【问题标题】:How to protect url manipulating with /.. in php如何保护在 php 中使用 /.. 操作的 url
【发布时间】:2019-01-14 16:43:17
【问题描述】:

我正在使用文件管理系统,当他们在 url 字符串之后填写 url /.. 时,我想保护 url 操纵。在这种情况下,它们会脱离根。我该怎么做?

更多信息: 我在httpdocs 的网络服务器上有一个文件夹。路径为:httpdocs/filemanagement 在网址中您可以看到:http://example.com/filemanagement/index.php?dir=blablablablablabla/.. 之后键入时,有人可以看到httpdocs 中的所有文件夹

【问题讨论】:

  • 嗨,杰克,到目前为止,您尝试了哪些不起作用的方法?
  • 嗨,Jack,它并不清楚你在这里要做什么,你能详细说明一下吗,也许一两个例子会有所帮助
  • “在那种情况下,他们会脱离根。” ...那么它不是根,你不能超越通过操作 URL 定义的 DOCROOT,它只是不能那样工作。
  • 好吧,我已经有了这一行,所以你看不到 linux 目录:if ($file != '.' && $file != '..') { 。但这不是一种保护。如果操作 url,它们仍然可以进入根目录之外的目录

标签: php url protection


【解决方案1】:

如果您只需在 url 字符串 /./.. 后键入即可访问上一个文件夹,则可以使用 $_SERVER['QUERY_STRING'] 捕获它们

if (basename($_SERVER['QUERY_STRING']) == ".." or basename($_SERVER['QUERY_STRING']) == "." )  {

    exit('Not allowed');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多