在网站中允许用户上传文件, 上传的文件可能是可执行的脚本, 病毒或者木马文件. 可能会黑掉项目或者数据库.
即使做了文件的后缀限制,但黑客可能也会把病毒的后缀改成常用的文件名后缀, 上传到系统后对系统进行攻击. .
解决的方案
- 读取这个文件的二进制数据流,根据文件的二进制数据的开头的几个字节代表的magic number来判断文件的类型 例如class文件的魔数为 0x CAFEBABE开头
- 限制上传文件的大小
- 对文件进行重命名
- 对文件进行压缩, 破坏原文件内部的结构,防止病毒脚本的执行. 例如可以利用ImageMagick开源包对图片进行处理