2012-03-19 25 views
0

我在VB.Net中创建了一个与2个大型MSSQL数据库进行大量交互的程序。我不知道大量的VB,我是相当新的,但我会假设只是在代码中的连接字符串,并发布程序,这将是很容易有人来扭转该程序,并获得我的连接信息?如我错了请纠正我。在VB.Net中使用SQL连接字符串的最安全的方法

我的问题是我想知道是否有一种更安全的方式来使用我的程序中的连接字符串。我只需要加密我的应用程序?创建一个模块或DLL?

+2

请阅读此评论:http://stackoverflow.com/questions/9727089/what-is-a-simple-but-somewhat-effective-way-to-obfuscate-numeric-values#comment12369072_9727089 – asawyer 2012-03-19 18:55:13

回答

2

您可以只加密.config文件中包含敏感内容的部分,在这种情况下是连接字符串。

答案是ASPNET_REGIIS.EXE

的位置可能随您的系统和.NET的版本的不同而不同,但文件搜索应该缩小范围。

假设您有一个名为myapp的程序位于c:\ dotnetaps \ myapp中。

我用下面的命令来加密web.config中的“的ConnectionStrings”部分:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp 

等待第二个:web.config文件仅适用于Web应用程序,而不是本地的,对不对? aspnet_regiis.exe只适用于web.config,但的格式与app.config完全相同。因此,您只需将app.config重命名为web.config,运行该工具并重新命名即可。有点尴尬,但没有什么不能通过批处理文件自动完成。

@ Encrypts connectionStrings in app.config 
ren C:\dotnetapps\myapp\app.config web.config 
path\to\exe\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp 
ren web.config app.config 

重要提示:使用字面这些命令将加密对运行它的特定系统中的文件。您需要做一些阅读,以便对密钥进行加密,以便分发代码,但这是一般想法。

+0

我目前不是使用ASP.Net。我在Visual Basic中创建了一个基于Windows的环境程序.Net 2010 – 2012-03-19 19:12:39

+0

据我所知,这应该不重要 - 只需要获取可执行文件,也许通过安装IIS Express或类似软件即可。我不确定Visual Studio或IIS程序包含aspnet_regiis.exe的具体内容,但我只是将其视为另一种安装方式,就像任何其他工具一样。它应该仍然适用于您的程序。你只需要把你的连接字符串放在app.config中。请参阅以下示例:http://www.dreamincode.net/code/snippet1145.htm – 2012-03-19 20:04:01

相关问题