Laz*_*Laz 6 asp.net security upload file-upload web-applications
我想使用上传到Web服务器的文件内容不可恢复.我担心的是:
上传文件时,它是否存储在临时目录(例如Windows Temp目录)中,如何从那里清除所有痕迹?
是否可以将文件内容写入虚拟内存,如何确保文件内容写入或删除内容?
如果我加密文件,在文件加密之前,我是否还要担心内容被保存到Temp目录,虚拟内存或其他地方?
我可以在所有关注的位置(临时,虚拟内存,任何其他位置)执行安全删除,我该如何做?
是否有任何我错过的担忧或实现既定目标的替代方法?
注意:这是一个ASP.NET Web应用程序.
编辑:感谢djeeg's指出如何将临时上传目录重新定位到更可控的东西的链接.
关于其他要点的任何反馈?
您可以让擦除实用程序为您完成这项工作。
如果您在 Mono/Linux 上运行 ASP.NET,则可以wipe
通过类使用该命令Process
(确保已安装擦除包)。
如果您运行 Windows,方法是相同的。wipe.exe
当您需要安全地处理文件时,请使用执行硬清理的实用程序。
我喜欢这个网站,它分发了免费的wipe.exe,它不包含在Windows 标准安装中(太糟糕了)。
第二种方法是实现Guttman 算法,但我认为使用别人的代码更便宜。
请记住,擦除是 I/O 密集型操作,不要等待它完成,否则可能会显着减慢应用程序的速度。此外,在高负载网站上,您可能会遇到明显的速度减慢的情况。
该类SecureString
可以帮助您在内存中不留下任何字符串痕迹。但是当您处理文件时,您实际上是在处理流。我不确定是否担心易失性内存的内容(即使您处理维基解密文档)。
您必须首先执行威胁分析,告诉您内存面临的主要威胁是什么。这里有一些问题:
如果答案是否定的,您不必担心内存安全
即使您在 Windows 上运行,我也可以将页面文件、虚拟内存文件或其他文件称为“交换”。您可能会考虑禁用它(确保您有足够的 RAM),或者,您可能会考虑对其进行加密(但性能会下降)。
但同样,为了让某人在运行时扫描您的交换文件,他必须是 root,或者能够物理访问已关闭的服务器。
如果数据太敏感,我会禁用交换。
[添加] 我确定您已经使用 SSL 来上传文件,以防万一您忘记了一些原则...
归档时间: |
|
查看次数: |
446 次 |
最近记录: |