识别Chrome扩展程序发出的请求?

时间:2012-09-13 01:47:21

标签: google-chrome-extension xmlhttprequest

我的网络应用程序包含一些非常直观的网址,因此人们编写了一些使用这些网址向我们的服务器发出请求的Chrome扩展程序。不幸的是,这些扩展会给我们带来问题,锤击我们的服务器,发出格式错误的请求等等,所以我们试图弄清楚如何阻止它们,或者至少让我们难以对我们的服务器发出请求以阻止这些扩展被使用(我们提供他们应该使用的API)。

我们已尝试向请求添加一些自定义标头,并为响应添加junk-json-preamble,但扩展作者已更新其代码以匹配。

我不熟悉chrome扩展,那么他们对主页的访问权限是什么?他们可以在主页上调用JavaScript函数吗?浏览器是否包含特殊标头以区分主机页面请求和扩展请求?主页是否可以检查扩展列表并拒绝某些扩展名?

我们考虑的一些选项是:

  1. 用户对速率限制QPS,但问题并非所有查询都相同,而且扩展通常会启动几个看似用户输入查询的昂贵查询。
  2. 限制用户可以使用的服务器时间,但问题是用户可能会多次浏览或运行昂贵的查询,从而达到此限制。
  3. 添加静态自定义标头/响应文本,但他们已更新代码以模仿我们的代码。
  4. 找出某种令牌(可能以某种方式加密),我们在请求中包含了扩展程序无法轻易猜出的内容。我们缩小/混淆我们的JS,所以可以将它嵌入JS源代码中(因为它的变量名很难猜到)。
  5. 我意识到这可能不是一个100%可解决的问题,但是我们希望能够让我们在战斗中占上风,或者让我们足够努力去削减我们的用户界面,让更少的人去做。

1 个答案:

答案 0 :(得分:1)

Welp,猜猜没有人知道。最后,我们发送了一个自定义标头并开始跟踪谁没有发送它。