2

标题实际上说明了问题。在你误会我之前,我不想知道如何做到这一点,而是想知道如何防止它。

我想编写一个文件上传器(在 Java 中使用 JPA 和 MySQL 数据库)。由于我还不能 100% 确定内部管理,因此在某些时候文件可能会在内部执行/打开。

因此,我很高兴知道,攻击者可以通过上传任何类型的文件(可能是媒体文件、二进制文件或其他文件)来损害、感染或操纵我的系统。

例如:

  • 文件名中的特殊字符呢?
  • 操纵像 EXIF 这样的元数据呢?
  • MP3 文件中的“嵌入式病毒”怎么样?

我希望这不是太模糊,我很高兴阅读您的提示和提示。

最好的问候,
斯塔基

4

2 回答 2

1

它确实非常特定于应用程序。如果您使用的是像 phpBB 这样的特定 Web 应用程序,那么安全需求与运行新闻组时完全不同。如果您需要量身定制的安全建议,则需要根据您正在做的事情的上下文来搜索它们。它的范围可以从清理输入到限制上传大小和格式。

例如,MP3 文件病毒可能只对少数特定的 MP3 播放器起作用。不是所有的。

无论如何,如果您想广泛覆盖病毒,请使用病毒扫描程序扫描文件,但这可能无法保护您免受脚本注入之类的攻击。

于 2013-10-14T16:45:18.380 回答
1

如果您的服务器没有做一些天生愚蠢的事情,那么应该没有问题。但...

由于我还不能 100% 确定内部管理,因此在某些时候文件可能会在内部执行/打开。

......这本身就是愚蠢的。您必须确保不会意外执行上传的文件(上传目录的权限是起点,将上传限制到特定目录等)。

除了执行之外,如果服务器尝试任何特定于文件类型的处理(例如,制作图像的缩略图),总是有可能通过缓冲区溢出漏洞攻击该处理(尽管这些是特定于每种类型的软件/库)。

仅存储/提供文件的纯文件服务器(例如 FTP)被保存(当没有其他漏洞时)。

于 2013-10-14T18:32:42.733 回答