【发布时间】:2015-07-11 06:53:08
【问题描述】:
我有一些小型 Google App Engine 应用正在访问同一个 Cloud SQL 实例(以节省资源),我不想限制每个应用对这些单独数据库的访问;例如。
1. CoolApp5 ---> global_db_instance -> coolapp5_db
2. EatFood ----> global_db_instance -> eatfood_db
3. WebsiteCo --> global_db_instance -> websiteco_db
Configuring Google Could SQL Instance Access
当前系统似乎允许应用程序访问全局实例数据库,但会产生安全漏洞。如果入侵者能够访问数据库真正的单个应用程序(coolapp5/eatfood 或 websiteco),他将有权访问所有数据库。
例如。 CoolApp5 的 Wordpress 网站
<?php // wp-config.php
define('DB_HOST', ':/cloudsql/global_db_instance:db'); //
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'coolapp5_db');
?>
如您所见,应用程序coolapp5 可以访问coolapp5_db,并且可以访问其他数据库 (eatfood_db, websiteco_db),因为该应用程序具有 root 访问权限。
Google seems to allow this through an external IP address
一个明显的解决方案可能是为每个应用创建多个单独的实例,但这对于小型应用来说效率很低,因为 Cloud SQL 数据库可以同时运行多个网站。
是否有任何其他解决方案或者我的策略根本不适用于 Google Cloud SQL?
【问题讨论】:
标签: google-app-engine google-cloud-sql