gpt4 book ai didi

asp.net - 如何确保上传的文件内容使用后无法恢复?

转载 作者:行者123 更新时间:2023-12-04 03:39:37 27 4
gpt4 key购买 nike

我想让上传到 Web 服务器的文件的内容在使用后无法恢复。我的担忧是:

  • 上传文件后,它是否存储在临时目录(例如 Windows Temp 目录)中,如何清除那里的所有痕迹?
  • 文件的内容是否可以写入虚拟内存,如何确保不会写入或删除内容一旦写入?
  • 如果我加密文件,我是否还需要担心在文件加密之前将内容保存到临时目录、虚拟内存或其他地方?
  • 我可以在所有相关位置(临时、虚拟内存、任何其他位置)中执行安全删除吗?我该怎么做?
  • 是否有任何我遗漏的问题或实现既定目标的替代方法?

  • 注意这是一个 ASP.NET Web 应用程序。

    编辑 :感谢 djeeg 指出如何将临时上传目录重新定位到更可控的地方的链接。

    对其他点有任何反馈吗?

    最佳答案

    磁盘安全
    您可以让删除 实用程序为您完成工作。
    如果你在 Mono/Linux 上运行 ASP.NET,你可以使用 wipe命令通过 Process类(确保安装了wipe包)。
    如果您运行 Windows,方法是相同的。使用 wipe.exe当您需要安全地处理文件时执行硬清理的实用程序。
    我喜欢 this分发免费wipe.exe 的网站,它不包含在Windows 标准安装中(太糟糕了)。
    第二种方式是实现Guttman algorithm ,但我认为使用别人的代码更便宜。
    请记住,删除是非常 I/O 密集型的,不要等待它完成,否则您可能会显着降低应用程序的速度。此外,在高负载的网站上,您可能会遇到明显的减速。
    内存安全SecureString class 帮助您在内存中不留下任何字符串的痕迹。但是当您处理文件时,您实际上是在处理流。我不确定是否担心 volatile 内存的内容(即使您处理 Wikileaks 文档)。
    您必须先执行 威胁分析告诉你内存的主要威胁是什么。以下是一些问题:

  • 有人可以使用具有执行内存转储功能的管理员/root 帐户访问服务器吗? (普通用户无法读取您的内存,.NET 可防止由于指针未使用而导致缓冲区溢出)
  • 有人可以物理访问服务器吗?您还不够信任您的托管服务提供商吗?你运行虚拟服务器吗?

  • 如果答案是否定的,你不应该担心内存安全
    交换空间安全
    即使您在 Windows 上运行,让我将页面文件、虚拟内存文件或其他任何内容称为“交换”。您可能会考虑禁用它(确保您有足够的 RAM),否则,您可能会考虑对其进行加密(但性能会下降)。
    但同样,为了让某人在运行时扫描您的交换文件,他必须是 root,或者对关闭的服务器具有物理访问权限。
    如果数据太敏感,我会去禁用交换。
    [添加]我确定你 已经使用SSL上传文件,以防你忘记了一些原则......

    关于asp.net - 如何确保上传的文件内容使用后无法恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721247/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com