我正在研究Entity Framework的.net核心示例。
默认示例在数据库上下文的构造函数中包括以下内容。
#warning To protect potentially sensitive information in your connection string, you should move it out of source code.
See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer("Server=servername");
警告中没有提到该链接,我已将此反馈提供给Microsoft。 https://github.com/aspnet/EntityFramework.Docs/issues/1269
在哪里存储sql连接字符串是否存在首选做法?如果连接字符串位于appsettings.json中,则仍将在源代码管理中对其进行跟踪。是最好的解决方案,其中包括来自appsettings.json的未跟踪文件?
答案 0 :(得分:1)
如果攻击者可以访问您的源代码信息,那么您将一无所获。
可以对已编译的.NET代码进行反编译,从而使攻击者能够泄露敏感数据,例如db用户密码。
配置文件可以在发布前进行加密以隐藏该敏感数据。参见https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-and-configuration-files#encrypting-configuration-file-sections-using-protected-configuration