2

我使用 Visual Studio 2008 和内置项目模板创建了一个 Excel 2007 加载项。在我的项目中,我有一个数据库连接类,它使用连接字符串连接到 Oracle 数据库,例如:

string connectionString = "Data Source=ibd1.dev;User Id=xxx;Password=xxx;";

我的问题是,部署加载项后这有多安全。最终用户(或恶作剧的黑客)是否可以反编译加载项并查看连接字符串?如果可能的话,我不能冒险。

我应该提到它是如何部署的。我正在使用 Visual Studio 中的“发布”功能将安装文件放在公司内部任何人都可以访问的共享网络驱动器上。生成的目录有一个 setup.exe、一个 VSTO 文件和几个带有 DLL 和 MANIFEST 文件的子目录。我没有太多部署经验,因为我通常是 Web 应用程序开发人员。

任何意见,将不胜感激。

4

3 回答 3

2

最终用户(或恶作剧的黑客)是否可以反编译加载项并查看连接字符串?如果可能的话,我不能冒险。

是的。Reflector、dotPeek等工具使这变得微不足道。

我可能不会从 VSTO 插件直接连接到数据库。相反,我会调用一个 Web 服务(它与 DB 对话),并且用户需要使用用户名和密码、Windows 集成身份验证等对 Web 服务进行身份验证。

于 2012-07-05T20:54:46.207 回答
1

是的,它很容易反编译,但你可以加密你的连接字符串以减少问题。但如果它不是独立应用程序,您可以使用服务器端服务中的数据库。

于 2012-07-05T20:55:35.147 回答
1

与所有 .NET 应用程序一样,DLL 可以很容易地被反编译,这会以纯文本形式公开连接字符串和密码。您可以通过下载免费的反编译器(我建议http://www.jetbrains.com/decompiler/)在几分钟内自行测试。

.NET 具有加密连接字符串的功能,请在此处尝试文档:http: //msdn.microsoft.com/en-us/library/89211k9b (v=vs.80).aspx

于 2012-07-05T20:57:15.477 回答