目前,我已经创建了一个简单的Java应用程序,它以正常方式连接到我的Google Cloud SQL数据库:try {Class.forName(com.mysql.jdbc.Driver);Connection con = DriverManager.getConnection(jdbc:mysql://-google-clo...
目前,我已经创建了一个简单的Java应用程序,它以正常方式连接到我的Google Cloud SQL数据库:
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方法建立与Cloud SQL数据库的数据库连接.我更喜欢一种独立于计算机物理位置的连接方法,所以我可以连接任何我想要的地方(如果我有互联网连接).
有没有比上面提到的方法更好的方法,还是这是唯一的方法?如果是这样,请告诉我如何保护明文密码.
任何帮助深表感谢!
解决方法:
无法使用OAuth2验证与Cloud SQL的连接.您可以使用OAuth2经过身份验证的API调用来创建新的临时用户名/密码对(和/或授权IP),然后使用它进行连接,但这不会增加任何额外的安全性,只需在应用程序中嵌入凭据即可.
正如Razvan在他的评论中建议的那样,从Android应用程序直接连接到您的Cloud SQL实例几乎肯定是不安全的.此外,您将来不可能进行架构更改,因为您将无法控制升级的旧版本应用程序.
以下是一些替代方案:
>使用Firebase,专为从移动设备和JavaScript使用安全数据库而设计.
>开发自己的数据库支持的API,以满足您的移动应用程序的需求.您的应用程序要设置或检索的每个数据位都可以有一个单独的API调用,可以在进行实际数据库调用之前执行所需的任何授权或验证.您可以使用Google Cloud Endpoints为您完成大部分工作.
本文标题为:使用Java JDBC连接Google Cloud SQL数据库的方法
基础教程推荐
- Java 在 Array 和 Set 之间进行转换的示例 2023-07-14
- JSP中param动作的实例详解 2023-07-31
- Java实现自定义Excel数据排序的方法详解 2023-05-19
- Java线程池submit阻塞获取结果的实现原理详解 2023-06-23
- Java ArrayList实现班级信息管理系统 2022-11-01
- SpringBoot超详细讲解@Enable*注解和@Import 2023-03-07
- IDEA2022创建Maven Web项目教程(图文) 2023-03-21
- 京东后端Java高级架构师面经+面试题:Spring+多线程+NIO+MySQL 2023-11-04
- SpringBoot雪花算法主键ID传到前端后精度丢失问题的解决 2023-04-07
- 关于spring web-mvc衍生注解 2023-04-18