【问题标题】:Identifying requests made by Chrome extensions?识别 Chrome 扩展程序发出的请求?
【发布时间】:2012-11-15 11:45:50
【问题描述】:

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

我们尝试在请求中添加一些自定义标头,在响应中添加 junk-json-preamble,但扩展作者已经更新了他们的代码以匹配。

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

我们考虑过的一些选项是:

  1. 按用户对 QPS 进行速率限制,但问题在于并非所有查询都是平等的,并且扩展程序通常会启动几个看起来像用户输入查询的昂贵查询。
  2. 限制用户可以使用的服务器时间,但问题是用户可能会通过多次浏览或运行昂贵的查询来达到此限制。
  3. 添加静态自定义标题/响应文本,但他们已更新代码以模仿我们的代码。
  4. 找出某种令牌(可能以某种方式加密)我们包含在我们的请求中,扩展无法轻易猜到。我们缩小/混淆了我们的 JS,因此可以将其嵌入到 JS 源代码中(因为它的变量名很难猜到)。

我意识到这可能不是一个 100% 可解决的问题,但我们希望要么让我们在解决这个问题上占上风,要么让我们的 UI 变得足够困难,以减少做这件事的人。

【问题讨论】:

    标签: google-chrome-extension xmlhttprequest


    【解决方案1】:

    哎呀,估计没人知道。最后我们只是发送了一个自定义标头并开始跟踪谁没有发送它。

    【讨论】:

      最近更新 更多