目前,我已经创建了一个简单的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数据库的方法


基础教程推荐
- CompletableFuture 异步编排示例详解 2023-05-08
- Quartz作业调度基本使用详解 2023-05-07
- jsp 使用request为页面添加静态数据的实例 2023-07-31
- SpringBoot接收参数使用的注解实例讲解 2023-04-17
- MyBatisPlus代码生成器的原理及实现详解 2023-03-30
- Mybatis-Plus或PageHelper多表分页查询总条数不对问题的解决方法 2023-04-16
- Mybatis-plus selectByMap条件查询方式 2023-02-04
- SpringBoot整合ActiveMQ的详细步骤 2023-07-01
- mybatis调用mysql存储过程并获取返回值方式 2023-04-23
- 运用El表达式截取字符串/获取list的长度实例 2023-08-01