加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何防止密码和其他敏感信息出现在ASP.NET转储中?

发布时间:2020-12-15 18:56:21 所属栏目:asp.Net 来源:网络整理
导读:如何防止在IIS / ASP.NET转储文件中向ASP.NET网页提交和接收的密码和其他敏感数据? 重现的步骤 使用Visual Studio 2010,创建一个ASP.NET MVC 3 Intranet应用程序。 将其配置为使用IIS 7.5。 打开它并注册一个帐户(以bob123为用户,Pa $$ w0Rd为密码。我假
如何防止在IIS / ASP.NET转储文件中向ASP.NET网页提交和接收的密码和其他敏感数据?

重现的步骤

>使用Visual Studio 2010,创建一个ASP.NET MVC 3 Intranet应用程序。
>将其配置为使用IIS 7.5。
>打开它并注册一个帐户(以bob123为用户,Pa $$ w0Rd为密码。我假设SQL Express数据库已创建并且站点完全正常运行。
>使用任务管理器,右键单击w3wp进程并创建转储。
>在能够以十六进制显示其内容的编辑器中打开转储,例如SlickEdit。
>在十六进制转储中搜索“Pa $$ 0Rd”和“Pa $$ w0Rd”。你应该能够找到它的几个副本存储为ASCII,Unicode或编码。

请注意,您是否使用HTTPS无关紧要,因为它只加密通信。 ASP.NET将数据存储在内存或磁盘中。

问题

常见的智慧有它加密敏感数据,而不是存储在明确。但是,员工可能会收到IIS / ASP.NET应用程序的转储,并发现用户的密码和其他机密数据,因为此信息既未加密,也未被ASP.NET使用的内存在使用后清除。

这使他们面临风险,只是因为他们有权使用它。转储有时与合作伙伴(如Microsoft)共享,以帮助他们诊断他们的代码中的问题。它是诊断一些应用中真正复杂问题的必要部分。

我看的东西

>对密码和其他敏感数据使用SecureString。但是,ASP.NET成员资格提供程序以及其他框架(如WCF)通常接受密码为System.String,这意味着这些副本仍然在转储中。
>看看在框架中是否有任何内容,以便在不再使用System.String时清除其副本。我找不到什么。
>调查是否可以清除用于请求和响应的内存,一旦IIS完成它,但我没有找到任何东西。
>我研究了可以加密文件IIS接收(作为HttpPostFile),使它们不存储在明确。我们可能收到非常机密的文档,并且每一步都是在服务器上加密和保护它们。但是,有人可以从IIS转储中清除它们。

我所希望的是告诉IIS / ASP.NET一个特定的请求/响应包含敏感数据和IIS / ASP.NET将清除内存时,使用它。

解决方法

根据定义的转储文件转储应用程序在转储时使用的所有内存,如果您要创建一个过滤器,以便排除某些事情,那么您可能永远不能确定您有足够的数据来解决问题。

你愿意将数据库/配置设置交给第三方吗?如果不是那么你可能不应该交出dumpfiles。 (恕我直言)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读