Java 通过PHP上传和解析命名二进制标记文件(NBT)的安全性

Java 通过PHP上传和解析命名二进制标记文件(NBT)的安全性,java,php,security,file-upload,Java,Php,Security,File Upload,我正在构建一个处理上传/下载文件(NBT)的应用程序 上传后,我需要解析它们并获取一些信息 我有点担心安全问题,因为我没有必要的知识来正确理解它们是如何构建的,或者期望从中获得什么样的数据 上传文件时,我可以执行哪些健全性检查,以确保它们确实是NBT文件 在解析它们时,我应该担心吗 如果还有什么我应该关心的,请告诉我 我意识到这些都是模糊的问题。谷歌上没有太多的答案,否则我就不会在这里了。NBT的文件格式非常简单紧凑。它是一个二进制流(未压缩或gzip),由Notch指定 一个“问题”来自特

我正在构建一个处理上传/下载文件(NBT)的应用程序

上传后,我需要解析它们并获取一些信息

我有点担心安全问题,因为我没有必要的知识来正确理解它们是如何构建的,或者期望从中获得什么样的数据

  • 上传文件时,我可以执行哪些健全性检查,以确保它们确实是NBT文件

  • 在解析它们时,我应该担心吗

  • 如果还有什么我应该关心的,请告诉我


我意识到这些都是模糊的问题。谷歌上没有太多的答案,否则我就不会在这里了。

NBT的文件格式非常简单紧凑。它是一个二进制流(未压缩或gzip),由Notch指定

一个“问题”来自特制的NBT文件,其中包含大量空列表和列表列表。。。解析这些项的内存开销可能会导致服务失败(主要是因为为每个项创建的对象只会填满内存)

一种解决方案是限制正在读取的条目数量,当达到该限制时,只需删除已解析的文件

我最近发表了一篇文章(但没有限制),也许它可以帮助您理解该文件格式

编辑:忘记共享此网站关于“漏洞利用”: