我正在制作一个基于 Java 的表单桌面应用程序,一个迷你登录表单,它将能够登录到在 asp.net 中在线的大型系统。这个应用程序的目的是安装在电脑上,只要安装了这个exe,网站就可以登录,否则不能。问题是,我已经把 sql server 的连接字符串放在里面了,员工会在他们的机器上安装这个应用程序,有一个工具可以反编译 JAR 和类。当我在其中检查我的课程时,它显示了我的 sql server 密码。它可以让他们有机会破解这个应用程序,这对我们提供给他们或让他们有机会获得 sql server 密码真的很危险。你能帮忙吗,有没有这样的解决方案,我可以在连接字符串中给出MD5加密密码或一些加密密码,sql server可以理解它。
谢谢
问问题
822 次
2 回答
1
有几种方法可以处理这个问题。
连接字符串中的用户信息应仅限于执行一个过程:测试 MAC 地址是否有效的过程。这限制了曝光。不是以理想的方式,但它是某种东西。
根本不发送连接字符串。而是让 java 应用程序将 mac 地址发布到 Web 服务。该服务应连接到数据库服务器以确定授权。优于选项 1。
更好的是:不要依赖 MAC 地址。如果您担心有人会查看连接字符串,那么他们可能会更改其 MAC 地址以模仿另一台机器。理所当然地,任何熟悉到可以直接连接到数据库服务器的人也将熟悉到可以下载许多免费提供的工具之一来欺骗他们的 MAC。
这导致了一个评论:我认为你做错了。如果 Java 应用程序的全部目的是简单地读取 MAC 以验证该特定机器是否应该具有访问权限,那么您在理解安全性方面存在一些严重问题,我认为您确实需要评估您正在尝试的确切内容停止。
于 2012-05-21T22:57:05.787 回答
0
您可以使用集成身份验证,前提是数据库服务器与您的用户位于同一活动目录域中。只需Integrated Security=SSPI
在您的连接字符串中指定并授予与您希望他们能够在数据库中执行的操作相对应的常规用户权限(例如,只读访问权限),但仅此而已。
于 2012-05-21T20:49:45.063 回答