java - 如何使用 Java 小程序安全地与数据库通信

标签 java database security applet

我使用 PHP 和 MySQL 编写 Web 应用程序已经有一段时间了。我总是将我的数据库连接信息存储到一个配置变量中,并以这种方式连接到数据库。

客户希望他们的网站有一个 Java 小程序来与他们的数据库进行通信。我对此非常犹豫,因为小程序将公开,我不确定我将如何存储数据库连接信息。

我怀疑有人会反编译我的应用程序或找到某种方法来提取我的数据库连接信息并恶意使用它。

关于如何安全地执行此操作有什么建议吗?

最佳答案

澄清一下,您并不太担心连接被“窃听”,您担心有人可能会破解您的小程序并提取数据库连接详细信息,对吧?

好吧,我可能不会让它直接连接,而是让它与一个以 JSON/XML 格式返回数据的网络应用程序对话。如果人们真的愿意,他们仍然可以从您的小程序中获取它,但他们仅限于网络应用程序可以获取的内容。

如果这不能使您满意,请确保小程序使用的数据库用户仅限于执行它需要执行的操作。如果它只是拉取数据,请不要给它插入权限。

如果您只进行写入操作,另一种选择是拥有一个公共(public)数据库和一个私有(private)数据库。来自您的小程序的写入进入公共(public)数据库并在验证后同步。这样做的问题是您可能会丢失一些内置检查和关系,除非您在公共(public)数据库中保留所有数据的副本 - 这可能不安全。

另一种选择是为每个用户提供他们自己的数据库用户。然后,如果未经授权的人要获取该小程序,他们仍然需要一个帐户才能进入。

我认为构建一个中介网络应用程序可能是你最好的选择,但我不知道完整的场景,所以我不适合做出判断。

关于java - 如何使用 Java 小程序安全地与数据库通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521871/

相关文章:

java - android:为什么我的 ListView 中没有出现任何元素?

java - junit AssertionFailedError 与内存地址

Mysql外键约束格式不正确?

java - 在 Android 上使用 MySQL

android - 如何在 Android 中安全地存储访问 token 和 secret ?

java - 为什么小程序关闭服务器?

java - jBPM:在java类或BPMN中声明流程变量

mysql - RoR 使用 2 个不同的数据库和事件记录适配器?相同的表名

security - 如何保护 Google chrome 扩展程序中的 API key ?

php - 过滤、存储到数据库并输出文本区域的文本? Zend 框架 2.3.5