我刚刚在我的项目中实现了uploadify,并且发现上载过程似乎是一个重要的安全问题:

应该在其中上传文件的文件夹作为javascript参数提供,因此是客户端提供的。如果用户更改了脚本,并为上载填写了其他文件夹(即“/”),则文件将被上载到其他文件夹。

配置中有一个选项可以过滤文件类型,但它还是在客户端(“fileExt”)提供。

因此,我以为这可能会导致黑客入侵吗?在Web根目录中的任何位置上传php文件并执行它似乎很容易。

  • 这是所需的行为吗?
  • 我应该只对uploadify.php文件中的上载文件夹进行交叉检查吗?
  • 我应该发送通知给uploadify制造商吗?

  • 我确定我不是第一个想到这个的人。哦,其他配置参数也一样,例如sizeLimit和queueSizeLimit。

    最佳答案

    只是看一下代码(没有在任何地方安装它),看起来确实是一个安全问题。查看uploadify.php,我看到以下内容:

    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
    

    这意味着传递“/”会将文件放在文档根目录(即网站的主目录)中。当然,用户可以轻松地(例如)传递文件夹参数(例如“../../etc”)和名为“passwd”的文件。或者,更琐碎的是,他可以将“logo.jpg”上传到文档根目录,嘿,现在您已经对网站徽标感到色情!

    当然,即使将用户沙箱化,在允许用户将文件随意上传到服务器上仍然存在许多潜在的问题。如果他们上载了.php文件,然后使用浏览器转到该文件怎么办?他们突然有能力在您的服务器上执行任意代码!

    如果要执行此操作,则应强制用户上载到受限制的目录中(如果用户使用“../ ..”或其他内容创建了疯狂的路径,则realpath函数将清除该路径),并且应限制允许的文件类型(例如,仅“.jpg”,“。gif”,“。png”或其他类型)。即使那样,恶意用户也可以通过填满磁盘配额来阻止您。

    关于javascript - Uploadify的安全性问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1597153/

    10-16 21:57