1

我目前正在使用 Invision 论坛来托管我的网站,

我们正在使用他们的 API 密钥来提取用户数据并通过我们的启动器登录。

我注意到返回给我们的启动器的所有信息都在计划文本 (JSON) 中。这使得某人很容易将我们的流量重定向到启动器并插入一个假的 json 文件。

简而言之,破解启动器/登录系统。

我需要知道是否有任何验证方法可以调用,以确保信息是从我的主机发送的,而不是从中间的另一个人发送的。

该网站是HTTPS。

谢谢。

4

1 回答 1

0

好的,这里有一点背景。

1,我们使用的是云托管社区,因此我们的访问权限比自托管网站等更有限。

2,我们使用 c# 将 api 密钥作为参数发送,这是我如何检索用户主动购买的示例,(我将在结果上启用页面浏览选项卡,该选项卡可以访问下载链接、更新程序和程序启动方法等) :

var client = new RestClient("https://HIDDEN.forumflash.com");
var request = new RestRequest("/api/nexus/purchases", DataFormat.Json);
request.AddParameter("key", "BlahBlahBlah"); // Enter in Api Key
request.AddParameter("customers", MemID); // Pass id from member request
request.AddParameter("active", 1); // Check active purchases
var response = client.Get(request);

if (response.StatusCode == HttpStatusCode.OK)
{
    dynamic resp = JObject.Parse(response.Content);
    // do stuff with object.
}

结果总是一个 json 字符串,我没有能力改变它。

3,我们能够访问此信息的另一种方法是获取 oAuth 令牌,然后发送它而不是 api 密钥。我觉得这更安全一些,因为我们可以随时撤销任何授权令牌,以及随心所欲地更改秘密,并且令牌会每隔一小时左右过期(更改)一次?

但是我们认为这可能还不够“足够”,并且希望通过“验证”响应 DID 实际上来自服务器或服务器 IP 地址而不是某些中间人服务器来更进一步。

我一直在研究服务器证书验证,但我似乎只能找到禁用方法或如何发送它们,没有隐含的验证示例(老实说,我们一直在学习,这是一个 oopsie就我们而言),在适当的方向上进行简单的推动将有巨大的帮助。

于 2020-09-22T20:14:43.983 回答