安全管理

最近更新时间:2019-06-24 10:50:25

应用场景

• 需要将大屏嵌入到自己网站中,不希望被别人提取出来自己打开。
• 提供给 A 用户的大屏链接,不希望被 B 用户打开。

加密方式

• HMAC-SHA256
• BASE64

如何接入

获取 accessId/token

单击【发布】,记录下 accessId 和 token,具体如下图。
单击【确定】,如果您尝试直接打开您所发布的大屏,会提示:您没有权限访问。

如果需要打开您的大屏,需要使用 accessId/token 通过加密后生成签名。

加密

PHP 生成签名示例:

 $accessId = "81a663dbaaab055440513b820e8a4a56";
 $token = "c6v9aw4gpRo1yn6DlIwQHyhv1RQmgHhK";
 $timestamp = time();
 $nonce = rand(10000, 99999);
 $signStr = $accessId . ',' . $timestamp . ',' . $nonce;
 $signRet = urlencode(base64_encode(hash_hmac('sha256', $signSt
r, $token, true))); // 下面生成的 url 用于访问大屏
 $url = 'http://v.yuntus.com/cloudv/' . $accessId . '?signature=' . $signRet . '&timestamp=' . $timestamp . '&nonce=' . $nonce);

NodeJS 生成签名示例:

 const crypto = require('crypto');
 const accessId = "81a663dbaaab055440513b820e8a4a56";
 const token = "c6v9aw4gpRo1yn6DlIwQHyhv1RQmgHhK";
 const timestamp = Date.now();
 const nonce = parseInt(Math.random() * 100000, 10);
 const signStr = accessId + ',' + timestamp + ',' + nonce;
 const signRet = encodeURIComponent(crypto.createHmac('sha256', token).update(signStr).digest().toString('base64')); // 下面生成的 url 用于访问大屏
 const url = 'http://v.yuntus.com/cloudv/' + accessId + '?signa
ture='+ signRet + '&timestamp=' + timestamp + '&nonce=' + nonce;

安全校验策略说明

链接校验具备时效性,生成链接1分钟内校验有效,在此时间内校验通过,之后连续访问时间间隔超过12小时则会失效。