我知道有很多关于这些主题的帖子。但这些帖子通常会谈到限制文件类型和大小等等。因此,由于我的系统没有任何约束,因此不能满足我的需求。
假设我们有一个Web应用程序,它接受来自登录用户的上传。这些用户通过Active Directory进行身份验证。不允许匿名用户。
用户可以将任何类型的文件上传到系统。然后,用户可以预览通过我们的多用途查看器上传的文件。现在我们支持一些基本的文件类型,如图片,音乐,视频,PDF文件和办公文件。我通过检查可查看类型的字典来决定可查看的类型,如果类型不存在,则不会预览但直接下载。
我对我所面临的安全风险感到好奇,因此我将尝试详细说明我的系统。
我在文件保存程序方面有两个不同的系统:
对于这两种应用,预览策略是相同的。
所有文件都是通过操作方法提供的,只能在经过身份验证时访问。上传文件的逻辑路径遍历允许。
非office文件将返回给客户端,并显示在img
,video
和embed
html标记中。
另一方面,Office文件首先通过Microsoft Office的互操作库执行,转换为pdf,然后返回给客户端,并再次显示为常规pdf。
我想知道,通过这些流程,我是否在服务器端妥协任何安全性?我知道用户可以上传恶意文件,但用户在编写或阅读文件的过程中是否会损害我的系统?
更新:我正在通过防病毒软件将文件带入临时区域后扫描文件。然后,如果没问题,将其提交到预备区域。