【发布时间】:2012-01-26 06:37:38
【问题描述】:
服务器从不受信任的域中获取文件时有哪些安全注意事项?
使用 PHPs GD2 库调整您不信任的图像大小时有哪些安全注意事项?
该文件将存储在服务器计算机上,并可供下载。我知道我不能信任 MIME-Type 标头。还有什么需要注意的吗?
我有一个如下所示的webservice:
输入
一个 http-URL(或一个 String 应该是一个 URL)
输出
文件的元描述,如果有则错误。
元描述有两种形式之一:
- 这是一张图片 + 我的域中图片的 URL + 图片的缩略图(在我的服务器上生成并托管)
- 这不是图像 + 指向我域中文件的 URL
更新
我可以提出的问题:
远程服务器是一个恶意服务器,它会发送微小的信息,足以让套接字保持打开状态,但不会做任何有用的事情——比如slowloris。我不知道这是多么真实的威胁。我想通过超时+进度检查可以很容易地避免它。
远程服务器提供一些看起来像图像(标题,mime 类型)的东西,但是当我用 GD2 加载它时会导致 PHP 崩溃。
服务器发送一个无用或错误的 MIME 类型标头。就像
text-plain用于二进制文件一样。远程服务器提供包含病毒的图像。我认为调整图像大小会摆脱病毒,但如果没有理由缩放,我将提供原始图像。
远程服务器提供包含病毒的文件。该文件不会被视为图像,因此我的服务器不会对其执行任何操作。在用户下载并运行它之前,什么都不会发生。
另外,我假设我可以信任我的服务的用户。这是一个私人应用程序,在这种情况下用户可能会对不良行为负责。我认为他们不会故意尝试破坏它。
【问题讨论】:
-
你能告诉我更多关于你指的是什么类型的安全问题吗?因为就下载文件和镜像它而言,您可以强制下载托管在服务器上的文件以防止它们运行,因此除了可能存在病毒并被谷歌阻止之外,不会有任何问题。就图像而言,调整它们的大小应该没问题,就我而言,如果文件不是有效的图像,它将不会调整大小,所以你不应该有任何问题。
-
我不打算运行我的服务器上的文件。这不应该发生,除非 PHP 函数中存在错误(这是一个有效的问题)。如果文件包含病毒,我几乎无法保护用户。我想保证我的服务器是安全的。