以下是我的连接字符串:
<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文件中放置密码有什么问题吗?我读过一些关于反编译器能够读取密码的内容......这是真正的威胁吗?我该怎么做才能保护这个应用程序?
答案 0 :(得分:3)
您应该始终加密存储在配置文件中的敏感信息。您可以通过程序化或aspnet_regiis
进行此操作(有关详情,请参阅docs)。
因为人们可以通过不同的漏洞以纯文本格式下载web.config文件,然后他们就可以读取所有连接字符串,用户名,密码等。
可能的攻击列表:
答案 1 :(得分:1)
可能不是。 web.config文件中的密码通常会显示用于连接到远程SQL Server(或其他数据库)的身份验证详细信息。这是你想要保护的东西。
您的数据库文件属于文件种类(存储在本地),您的SQL Express数据库可以使用集成安全性访问,因此我可以说您可以保留原样。