我应该把API密钥隐藏在插件中吗?

时间:2017-02-25 作者:Ghimbo21

我正在制作一个非常简单的插件来联系OneSignal,这是一种在发布帖子时向android应用程序发送通知的服务。

这个插件没有接口,只有当管理员发布的帖子被调用时,才会显示我的OneSignal API键。

function sendMessage($postTitle, $postLink)
{

 $heading = array(
        "en" => "New post!");

 $content = array(
        "en" => $postTitle);

     $fields = array(
        \'app_id\' => "MY API KEY",
        \'included_segments\' => array(\'All\'), \'data\' => array("postLink" => "$postLink"), \'contents\' => $content, \'headings\' => $heading);

$fields = json_encode($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(\'Content-Type: application/json; charset=utf-8\',
                                               \'Authorization: Basic MY SECOND API KEY\'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$response = curl_exec($ch);
    curl_close($ch);

    return $response;
}
正如您所看到的,API密钥处于清除状态。我应该把钥匙藏起来?如果是,如何进行?请记住,这是我第一次在Wordpress中“开发”一些东西,所以可能我做错了什么。

非常感谢。

1 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

您无法隐藏API密钥。

如果您查看wp配置。php文件,它包含以明文形式访问数据库的用户名和密码。WordPress甚至没有尝试混淆它们。

如果您正在分发此插件,另一个选项是让插件用户各自获得一个API密钥,创建一个选项页面,以便他们可以输入密钥,并将密钥存储在数据库中。然后,当需要使用API时,从数据库中获取选项并使用它们的密钥。

相关推荐