Javascript 防止chrome扩展进行ajax调用

Javascript 防止chrome扩展进行ajax调用,javascript,asp.net,ajax,google-chrome,google-chrome-extension,Javascript,Asp.net,Ajax,Google Chrome,Google Chrome Extension,我有一个asp.net网站,客户端javascript会向服务器发出大量ajax调用。有没有什么方法可以阻止google chrome扩展调用我的ajax端点,或者检测它们是由chrome扩展代码而不是我自己的javascript代码生成的。到目前为止,我已经使用referer、httponly cookies进行了测试,但这两个调用之间没有区别。任何想法都将不胜感激。否,没有 Chrome扩展具有提升的权限。他们“允许”你的网站JavaScript代码,并可能操纵和调用它 即使您添加了反CSR

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

,没有

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

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

你唯一能做的就是不要信任客户机任何重要的事情,将你收到的所有请求视为恶意请求,并要求客户机在向服务器发出请求之前进行身份验证


(我想你指的是在你的网站上运行的chrome扩展)

谢谢你的回复。是的,在我们网站上运行的扩展。我不信任客户,但我们的支持团队更愿意避免支持我们没有编写的代码。我考虑在httponly cookie和javascript闭包(每次ajax调用都会发送)中使用csrf令牌,因此扩展无法访问它(闭包中的var),但这将导致我们重新分解js代码以支持这一点,这将带来很多麻烦。也许还有一条路可以绕过它?@user2444499这一点也帮不上忙。他们可以在JavaScript运行之前访问它。他们所需要做的就是转到您的脚本标记并重新考虑代码本身。他们只需在代码中添加一个
window.secretClosureScoped=yourSecretCloseScoped
(例如,将其解析为字符串)。你可以玩猫捉老鼠的游戏,想出一些聪明的方法,不把网站展示给拥有扩展功能的人,也许会让他们“筋疲力尽”——这可能行不通。如果分机想显示一张猫吃奶酪汉堡的图片,而不是你的网站,或者在用户进入时窃取用户的用户名和密码,那么他们完全可以。这就是扩展的工作原理,也是用户必须让它们运行的原因。