我正在使用 Carrierwave 和 Rails 4 实现 pdf 上传。客户向我询问恶意内容,例如如果有人尝试上传伪装为 pdf 的恶意文件。我将前端的文件类型限制为“application/pdf”。假设上传的文件具有 .pdf 扩展名,还有什么我需要担心的吗?
最佳答案
文件上传通常是一个安全问题,因为有很多方法会导致错误。仅就将恶意文件伪装为 PDF 的问题而言,检查内容类型(application/pdf
)很好,但还不够,因为它由客户端控制并且可以修改。
- 绝对建议过滤
.pdf
扩展名,但请确保您不接受virus.pdf.exe
等文件。 - 还存在其他文件名攻击技术,例如涉及空字符或控制字符。
- 考虑使用文件类型检测器来确定该文件是否确实是 PDF 文档。
但这只是为了限制文件类型。接受文件上传时还有许多其他问题需要注意。
- PDF 文件可能包含恶意代码,是常见的攻击媒介。
- 确保上传的文件写入服务器上的适当目录。如果它们不打算公开访问,请选择 Web 根目录之外的目录。
- 限制最大上传文件大小。
无论如何,这都不是完整的列表。查看Unrestricted File Upload OWASP 的漏洞了解更多信息。
关于ruby-on-rails - Rails PDF 上传恶意内容漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937560/