3

这是我的连接字符串:

  <connectionStrings>
    <add name="ArticleDbContext" connectionString="Data Source=|DataDirectory|MyBlog.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="BlogDbContext" connectionString="Data Source=|DataDirectory|MyBlog.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="CompanyDbContext" connectionString="Data Source=|DataDirectory|MyBlog.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="UserProfileDbContext" connectionString="Data Source=|DataDirectory|MyBlog.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="ApplicationServices" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb1.mdf;User Instance=true" providerName="System.Data.SqlClient" />
  </connectionStrings>

我正在阅读有关实施应用程序的注意事项的http://msdn.microsoft.com/en-us/library/ms181873(v=vs.90).aspx

我相信我应该在这些上面输入密码然后加密。这是正确的,事后我该怎么做?将密码放在我的 web.config 文件中是否有任何顾虑?我读过一些关于反编译器能够读取您的密码的内容......这是真正的威胁吗?我能做些什么来保护这个应用程序?

4

2 回答 2

3

您应该始终加密存储在配置文件中的敏感信息。您可以通过编程方式或通过aspnet_regiis(有关更多详细信息,请参阅文档)进行操作。

为什么?

因为人们可以通过不同的漏洞下载纯文本的 web.config 文件,然后他们可以读取所有的连接字符串、用户名、密码等。

可能的攻击列表:

  • MS10-070视频
  • 机器上的任何其他用户都可以读取 web.config。这增加了一个庞大的列表,列出了对操作系统本身的所有已公开和未公开的攻击。
  • 攻击 IIS FTP 和后续的 web.config 传输,例如这个
于 2012-08-27T12:17:00.970 回答
1

可能不是。web.config 文件中的密码通常会公开用于连接到远程 SQL 服务器(或其他数据库)的身份验证详细信息。这是你想要保护的东西。

您的数据库文件属于文件种类(存储在本地),并且您的 SQL Express 数据库可以使用集成安全性进行访问,所以我想说您可以保持原样。

于 2012-08-27T12:06:54.437 回答