解锁 Chrome 扩展程序中的高级功能

flo*_*flo 6 javascript php encryption google-chrome-extension

我想在 Chrome 扩展程序中提供一些高级功能。这个想法是,只要用户通过 PayPal 捐赠了一定金额,就可以使用后者的附加功能。

目前,我的策略如下:

1/. 用户填写 PayPal 表格。

2/. 提交表单后,会生成一个返回 URL,其中包含一些关键参数,例如用户 ID、请求时间、捐赠金额。一切都通过 base64 编码。例如:

var returnURL = 'https://subdomain.main.com/?params=';

// On Form Submission
function SubmitForm(type) {

    var paramURL = '?user=' + userID + '&time=' + now + '&type=' + ptype;

    // base64 encoding via btoa
    $('#donate [name=return]').val( returnURL + btoa(paramURL) );
    // Reday to submit form
    $('#PayPalForm').submit();

}
Run Code Online (Sandbox Code Playgroud)

3/. Paypal 捐赠完成,用户被重定向到启用了 https 的扩展网站的子域。

4/. 进入我的网站后,一些 PHP 代码会检查引荐来源网址(即用户是否来自 PayPal?),如果引荐来源网址看起来不错,它会解码 base64 字符串并获取参数(id、时间、类型...)。例如:

// Retrieve URL parameters
$paramURL = parse_url(base64_decode($_GET['a']));
parse_str($paramURL['query'], $query);

$id_user = $query['user']; // ID of the user
$time_req = $query['time']; // Time of request/donation
$type_req = $query['type']; // Type of Premium license w.r.t amount donated
Run Code Online (Sandbox Code Playgroud)

5/. 在这个阶段,我们的想法是创建一个新的 URL,指向我的 Chrome 扩展程序的选项页面,其中包含一些现有的和新的参数,其中包括解密用户安装扩展程序时默认加密的部分代码的密钥。我遇到的第一个问题是我希望找到一种方法在 PHP 中加密这些参数,并能够在我的扩展中的 Javascript 中解密它们。

我应该使用 PHP 和 JS 中都可用的哪种对称加密/加密方法?AES256?在 JS 方面,我查看了Crypto-JSSJCL库。在 PHP 方面,AES 加密似乎有点棘手......

6/。一旦用户返回到扩展程序的选项页面并且 URL 参数被解码+解密,您将采取什么策略来解锁 Javascript 编写的扩展程序中的特定功能,以限制用户的作弊和搭便车行为,因为您知道混淆是一个非常糟糕的选择。

Ben*_*aum 0

我们这样做(http://tipranks.com),

我认为这里不需要任何加密。根本不要发送“加密”代码。

仅当用户有权限时才从服务器发送数据。

您让用户登录一次,当他们登录时您会获得他们的权限作为回报,然后服务器仅在用户拥有权限时才返回数据。

本质上 - 在这方面扩展与任何网站没有什么不同。