在 Perl 中,如果允许将任何文件类型上传到服务器(而不是在 Web 根目录中)然后下载,这会不会很危险?它不是这样执行的,而是作为二进制读取的。
最佳答案
我将重申@ThisSuitIsBlackNot 的文件上传安全注意事项链接...
- Unrestricted File Upload Vulnerabilities
- Complete File Upload Vulnerabilities这一点都不完整,但包含了一些很好的例子。
- CWE-434: Unrestricted Upload of File with Dangerous Type
- 8 Basic Rules to Implement Secure File Uploads
这些可以归结为...
- 服务器存在危险
- 注入(inject)服务器将执行的特殊文件或文件扩展名。
- .htaccess(每个目录的 Apache 配置文件)
- .php、.asp、.cgi 等...
- 在下载目录之外注入(inject)系统文件。
- /etc/passwd 或 ../../../../etc/passwd
- 利用处理库中的缺陷
- 图片大小调整
- XML/JSON 解析
- SQL注入(inject)攻击
- 文件名
- 文件元数据
- Shell 注入(inject)攻击
- 文件名
- 缓冲区溢出
- 文件大小
- HTTP 上传大小
- 文件名大小
- 目录深度
- 通过填充磁盘拒绝服务
- 注入(inject)服务器将执行的特殊文件或文件扩展名。
- 对他人的危险
- 网络钓鱼攻击
- 上传恶意 .html 文件,使其看起来 URL 来自您的(受信任的)主机。
- 上传恶意 .js 文件并从您域中的其他地方(可能是论坛帖子)引用它,以规避 XSS 攻击防御。
- 将您的服务用作匿名攻击媒介
- BOTnet 控制文件
- 盗版文件,包括种子文件
- 用于勒索或骚扰目的的个人数据
- 木马/病毒文件
- 网络钓鱼攻击
关于perl - 读取文件和执行文件一样危险吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504645/