插件:无需显示密码即可连接到外部数据库

时间:2014-05-09 作者:Paul

我正在创建一个WP插件,它显示来自外部数据库的信息。插件将被分发,外部数据库位于我自己的服务器上。

我知道以下代码将连接到我的数据库:

$newdb = new wpdb($DB_USER, $DB_PASSWORD, $DB_NAME, $DB_HOST);
$newdb->show_errors();
但我不想向下载插件的所有人显示我的密码。我在谷歌和许多论坛上搜索过,但我找不到安全的方法。

我希望有人能把我推向正确的方向。

2 个回复
最合适的回答,由SO网友:MathSmath 整理而成

我认为插件很少直接与数据库连接,原因正是您所引用的(其中包括端口问题、数据库安全最佳实践等)。

在大多数情况下,如果希望插件连接到外部数据源,最好使用API. 因此,您可以通过HTTP访问信息,而不是通过DB连接。

如果您提供给插件的信息不敏感,那么这很容易实现:只需创建一个端点(yourserver.com/some info/)即可提供以下信息:JSON (或其他一些结构化数据格式,如XML)。然后,您的插件可以通过plain ol\' GET request.

如果您的数据是敏感的,或者如果您需要客户端具有写入权限,则需要添加auth mechanism 到您的API。然后,用户需要进行身份验证,并提供有效的令牌以访问数据。

一开始听起来可能令人望而生畏,但大多数good PHP frameworks 使您可以轻松地推出自己的API—您只需要基本的路由和身份验证。Apigee提供了一个良好的(免费的,以交换您的联系信息)overview of API design here.

SO网友:Marijn Achterkamp

对于像我一样找到这个答案的其他人。可以通过WP settings API将第二个DB的登录信息存储为插件选项。因此,实际登录信息不在插件中,而是在WP数据库中。

结束

相关推荐

SQL database export-import

我开发的网站包含WordPress博客以及我设计的其他PHP页面。当我在测试服务器上本地更改站点时,我使用myPHPAdmin进行SQL数据库转储。如何避免覆盖客户端WordPress日历条目和其他日历设置的内容?如果我只是在localhost db dump上取消选择日历表,那么在导入之后,客户端的db会维护远程服务器上表的这些客户端条目吗?提前感谢