【问题标题】:Prevent chrome extension from making ajax calls防止 chrome 扩展程序进行 ajax 调用
【发布时间】:2013-06-18 01:36:09
【问题描述】:

我有一个带有客户端 javascript 的 asp.net 网站,它向服务器发出大量 ajax 调用。有什么方法可以阻止 google chrome 扩展调用我的 ajax 端点或检测它们何时由 chrome 扩展代码而不是我自己的 javascript 代码生成。到目前为止,我已经使用引荐来源 httponly cookie 进行了测试,但是这两个调用之间没有区别。任何想法将不胜感激。

【问题讨论】:

    标签: javascript asp.net ajax google-chrome google-chrome-extension


    【解决方案1】:

    没有,没有。

    Chrome 扩展程序具有提升的权限。他们“允许”您的网站 JavaScript 代码,并可能操纵和调用它。

    即使您添加了诸如反 CSRF 令牌之类的东西,扩展程序仍然可以读取它并绕过该保护。他们可以在您的网站上运行 JavaScript 代码,并在不通知您或您的用户的情况下在网站上即时修改您自己的代码。

    您唯一能做的就是不信任客户端处理任何关键问题,将收到的所有请求视为恶意请求,并要求客户端在向您的服务器发出请求之前进行身份验证.

    (我假设您的意思是在您的网站上运行的 chrome 扩展程序)

    【讨论】:

    • 感谢您的回复。是的,我们网站上运行的扩展程序。我不信任客户,但我们的支持团队宁愿避免支持我们没有编写的代码。我正在考虑在 httponly cookie 和 javascript 闭包(随每个 ajax 调用发送)中都使用 csrf 令牌,因此扩展无法访问它(闭包中的 var),但这会导致很多悲伤重构我们的 js 代码以支持这一点。也许还有办法解决它?
    • @user2444499 这一点帮助都没有。他们可以在您的 JavaScript 运行之前访问它。他们需要做的就是转到您的脚本标签并自己重构您的代码。他们可以简单地将window.secretClosureScoped = yourSecretCloseScoped 添加到 your 代码(例如将其解析为字符串)。他们只是允许你,有更好的钩子和更多的权限。
    • 您可以玩猫捉老鼠的游戏,并想出巧妙的方法不向拥有扩展程序的人显示该站点,也许会“把它们弄坏”——这可能是行不通的。如果扩展程序想要显示猫吃芝士汉堡的图片而不是您的网站,或者在用户进入时窃取用户的用户名和密码 - 他们很好。这就是扩展的工作原理以及用户明确必须让它们运行的​​原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多