django - Django-2.x 中的文件上传安全性
问题描述
关于安全文件上传的文档(https://docs.djangoproject.com/en/2.0/ref/models/fields/#file-upload-security)并没有完全回答我的担忧。
考虑以下用例:(可能是恶意的)用户可以使用表单上传文件。我想实现以下控件(返回错误消息,如果文件不符合则不接受):
- 文件必须小于 50MiB
- 文件名的格式必须为 ^[a-zA-Z0-9_ ]{1,250}.csv$
- 文件必须是 ANSI 编码的
- 仅允许文件中包含 ANSI 字符的白名单(例如 [a-zA-Z1-9;])
- 保护元数据以防止通过恶意元数据注入代码
实现这一点的最佳方法是什么?我是否也忘记了此用例的重要控件?
解决方案
推荐阅读
- javascript - Vue如何将嵌套数组合并为一个数组
- qt - 如何在 ui 窗口中创建草图区域
- apache-spark - 无法使用 Jupyter Notebook 停止火花上下文
- nginx - Nginx error_page 仅适用于 fastcgi
- teradata - 带有 Teradata 自动化问题的 Liquibase
- json - 如何在 AWS 上读取 sqs 消息的正文
- docker - Docker 构建需要更多时间
- javascript - Javascript:按条件初始化变量
- css - 如何让我的 CSS 网格响应并填满我的完整容器?
- python - 如何根据日期列在不同的文本/csv文件中转储一个巨大的mysql表?