下载自定义文件格式
Downloading custom file formats
我的任务是允许用户将文件上传到网页,然后其他用户可以下载该文件。
文件格式是自定义的,在本例中我将其命名为.ccx
。这是由我们自己的定制软件打开的。这个想法是,用户可以上传教程文件,以便彼此分享。
然而,我担心有人可以设计一个.ccx
文件在用户的计算机上植入病毒。这可能会对我们的网站产生非常负面的影响,如果这样的文件被设计出来,用户会变得害怕下载,我们的竞争对手可能会利用这一点来占我们的便宜。
-
作为web开发人员,我如何确保上传的文件是安全的?我知道不可能100%确定,但我想改善目前的"非常不确定"。
-
另外,在我们的定制软件中,可以采取什么措施来确保
.ccx
文件不会对用户的计算机造成危害(用c++编写的Windows程序)?我说的是相当于SQL注入的exe
谢谢大家的回答
在服务器上,您可以对它们运行任何命令行病毒扫描程序,并让它们查找已知的病毒签名。然而,这是否会提高安全性是值得怀疑的:因为病毒编写者需要修改你的格式,他们的恶意文件似乎不太可能匹配任何已知的签名,其次,你有误报的风险,导致其他有效的上传被拒绝。
你需要让你的客户端应用程序对文件格式的处理尽可能安全。这意味着:
- 不要信任输入文件。验证一切。不要容错。如果你控制着唯一一个写入此类文件的应用程序,那么任何意外的字节都应该触发警报。
- 进行广泛的测试(例如某种模糊测试来模拟随机输入变化)
- 设计你的文件格式尽可能简单。如果文件格式很复杂,那么实现也会很复杂。而且实现越复杂,需要处理的格式特性越多,安全漏洞的风险就越高。
- 确保你使用了操作系统的安全功能,如DEP或ASLR。
- 确保所有从事项目的开发人员了解常见的安全漏洞以及如何避免它们。
- 如果你真的,真的担心可能的攻击向量,尝试沙箱加载代码。例如,这可以通过使用嵌入式脚本语言来实现。
你永远不能100%确定你的代码是安全的。所以最好采取一些预防措施:
- 实现自动更新,能够快速修补安全漏洞。
- 警告用户不要打开来自不受信任的作者的文件(并告诉他们您不对'受感染'文件造成的任何损害负责…)。
使用尽可能少的特权运行您的定制软件。如果有人上传了损坏的文件,这可以确保即使他们控制了您的软件,他们也无法破坏其他任何东西。
相关文章:
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 如何将多种语言设置放在单个 .clang 格式文件中
- 视觉 如何循环访问C++中遵循类似格式的多个.txt文件?
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 文件格式的编写解释器(C++ Arduino)
- 将整个二进制文件读入缓冲区,然后以特定格式解析
- 如何使用 lldb 在曼扎罗中调试 lz4 文件格式的核心转储?
- 每个文件(理想情况下是每个部分)的 clang 格式样式覆盖
- Assimp - 如何使用任何文件格式导入带有纹理的网格?
- 如何检查字符串格式在读取C++文本文件时是否有效?
- boost::p rogram_options 配置文件格式
- 如何启用libMagick++以保存.png文件格式
- C++我应该用什么来保存格式化为字符串变量(如sprintf())的文件
- 生成库失败:无法识别文件格式;作为链接器脚本处理
- 提升信息解析器在读取/写入 INFO 格式文件时删除所有注释
- 如何向Visual Studio Clang-Format插件提供clang格式文件
- clang格式noop.crang格式文件
- 自定义存档格式文件读取
- 二进制文件格式vs基于文本的格式文件大小
- 不是可执行格式:文件格式无法识别 GDB