目前,我已经创建了一个简单的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数据库的方法
基础教程推荐
- Spring MVC 前端控制器 (DispatcherServlet)处理流程解析 2022-11-23
- Spring Data JPA系列QueryByExampleExecutor使用详解 2023-06-01
- SpringBoot底层注解超详细介绍 2023-06-05
- JPA原生SQL实现增删改查的示例详解 2023-06-01
- 微服务Spring Boot 整合Redis 阻塞队列实现异步秒杀下单思路详解 2023-06-30
- JavaWeb Hibernate使用全面介绍 2023-06-24
- Java 内置接口 Serializable示例详解 2023-07-01
- Java实现单机版五子棋游戏的示例代码 2023-05-19
- 如何为java.sql.DatabaseMetaData#getTables创建不区分大小写的模式? 2023-10-29
- JSP页面跳转方法小结 2023-08-01
