目前,我已经创建了连接到我的谷歌云SQL数据库正常方式一个简单的Java应用程序:连接方法,谷歌的Cloud SQL数据库和Java JDBC
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://-google-cloud-sql-ip:-port-/-projectname-","-user-","-password-");
Statement st = con.createStatement();
}
catch (Exception ex) {
ex.printStackTrace();
}
我唯一担心的是,密码被放置在这里作为纯文本。它不受任何保护。我知道可以用类似yGuard的东西来保护源代码。另外,我必须在Google Cloud中注册我的外部IP地址才能使用它。
因此,我想知道是否可以使用某种OAuth方法与云SQL数据库建立数据库连接。我更喜欢独立于计算机物理位置的连接方式,所以我可以在任何地方连接(如果我有互联网连接)。
有没有比上面介绍的更好的方法,还是这是唯一的方法?如果是这样,请让我知道如何保护纯文本密码。
任何帮助非常感谢!
这个问题并不明显,但是这个应用程序运行在可信环境(应用程序服务器)还是不可信任应用程序(移动应用程序)中? – 2014-11-23 03:01:12
感谢您的回复。它运行在不受信任的环境中。 – 2014-11-23 07:00:47
如果是这种情况,我建议远离直接说话的MySQL从这些地方(如果用户是逆向工程的应用程序连接的方式将能够发出任意查询)。相反,您可以构建后端(1)公开仅允许某些操作的API,(2)正确验证用户身份(例如,OAuth2)。 – 2014-11-23 10:18:05