JAVA如何存储mysql登录详细信息

时间:2016-01-07 15:15:31

标签: java mysql security login details

环境

我有一个java应用程序,需要访问mysql数据库来加载和保存数据,并且写入磁盘不会发生加载/保存,所以它必须通过数据库。

我正在阅读JNDI,但我不确定这会有所帮助,因为我看过的每个例子都是java servlet,我的目标是在{{1}中使用它独立应用程序。

问题

  • 存储java用户名和密码的最佳方法是什么,以便所有客户端都可以访问数据库,但仍保护登录信息,以便我的程序不会反编译,有人使用{{1登录以删除我的所有表格?

  • 你们会推荐什么?我希望这是安全的,我愿意接受任何建议。

  • 只会在数据库上执行少量语句,而这些语句是在预准备语句中使用的硬编码字符串,所以我认为这是安全的还是不安全的?

  • 但我的主要问题是保护数据库登录信息。

2 个答案:

答案 0 :(得分:0)

您有几种选择:

  • 使用具有最小可能权限的凭据。这意味着该用户将能够INSERT而不能DROP或DELETE
  • 通过创建Web服务(或其他远程处理技术)将程序和写入数据库的代码分开。
  • 仅使用PROCEDURE和FUNCTIONs联系数据库并仅将其授予用户。通过执行此操作,您将登录数据库,除了调用过程和函数之外,不允许执行任何操作。

答案 1 :(得分:0)

补充@Marged提供的选项,您还可以在代码中加密和存储凭据。请参阅此处Encrypt and decrypt a String in java的加密+解密示例。这将隐藏任何反编译器的凭据。

使用Web服务选项是一种更为严肃的方法,需要付出更多的努力和成本才能实现,然后您需要保护它们。