Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 攻击者能否使用另一个站点';谷歌地图配额是多少?_Javascript_Security_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 攻击者能否使用另一个站点';谷歌地图配额是多少?

Javascript 攻击者能否使用另一个站点';谷歌地图配额是多少?,javascript,security,google-maps,google-maps-api-3,Javascript,Security,Google Maps,Google Maps Api 3,据我所知(给定和),攻击者似乎可以运行另一个站点的配额 例如,假设我运行一个web应用程序“Find Taxi”,一个竞争对手运行“Find Ride”。在我的web应用程序的JavaScript代码中,我包含了我的Google Maps v3 API密钥。“Find Ride”的开发人员运行一个PhantomJS进程,该进程伪造了referer头(as),每天在他的服务器上加载25000张地图(超出了我的配额限制)。请注意,即使给定客户端IP速率限制,1个请求/秒/用户,也可以在一天内(每天8

据我所知(给定和),攻击者似乎可以运行另一个站点的配额

例如,假设我运行一个web应用程序“Find Taxi”,一个竞争对手运行“Find Ride”。在我的web应用程序的JavaScript代码中,我包含了我的Google Maps v3 API密钥。“Find Ride”的开发人员运行一个PhantomJS进程,该进程伪造了referer头(as),每天在他的服务器上加载25000张地图(超出了我的配额限制)。请注意,即使给定客户端IP速率限制,1个请求/秒/用户,也可以在一天内(每天86400秒)从单个客户端达到配额

我创建了一个简单的PhantomJS脚本来模拟这种情况(还有一个API密钥,将引用者限制为example.com/*),因此这种攻击似乎是可行的。谷歌是否依靠非技术原因来阻止这种情况?例如,我可以看到法律问题(如果该攻击被泄露,对业务的威胁)和经济问题(运行攻击服务器的成本)


我想我是在问这个问题,以防我错过了不可能进行此攻击的技术原因。

是的,这是可能的,但是谷歌对您的API密钥进行了域限制

这意味着您只能访问例如
www.example.com

默认情况下,密钥可以在任何站点上使用。我们强烈建议您将密钥的使用限制在您管理的域中,以防止在未经授权的站点上使用。您可以通过单击“编辑允许的引用者”来指定允许哪些域使用您的API密钥。。。链接以获取您的密钥


来源:

2013年12月,Google Geo support for Business为我确认,他们的文档在此问题上已过期。Google Maps API域限制使用浏览器的
窗口.location
对象,而不是
HTTP\u REFERER
请求头。考虑到
HTTP\u REFERER
可能由于各种原因而丢失,从新的浏览器窗口到代理服务器重写头值,这是有意义的

这使得欺骗授权域变得更加困难,然而,从理论上讲,这仍然是可能的。非常坚决的攻击者可以在任何开源浏览器引擎(例如Chromium、PhantomJS、Rhino等)中修改
window.location
的JS本机代码


这似乎是可能的,但不太可能,除非你有一些讨厌的竞争对手。此外我打赌谷歌支持部门会调查第三方涉嫌滥用API的情况,前提是你能证明你的地图API使用率明显高于你的分析使用率,显示加载地图API的页面。

最近我发现手动重复请求quotaService.recordEvent web服务最终会使用配额,即使你也是如此是否启用http引用程序


不确定是否有任何解决方案可以防止这种情况发生?

您刚才回答了自己的问题吗?这个问题是肯定的,是否定的,在任何在线论坛都可能被问到,这不是一个编程问题@pythonian29033虽然严格来说不是一个编码问题,但我觉得这属于devops的世界。是否有devops的stackexchange站点?是的;programmers.stackexchange,你流利的英语无助于证明你的论点有效programmers.stackexchange.com标记了0个问题,标记了0个问题,搜索短语只有57个问题。该党获得33票和23颗星。似乎与我有一定的关系。但是,推荐人的标题是虚构的。事实上,如果在攻击服务器上,您将example.com设置为localhost的别名,并访问Phantom.JS中的example.com(例如,page.open(“)),PhantomJS会将referer头设置为。请注意,即使不修改本机代码,您也可以通过配置/etc/hosts并访问站点来设置window.location。@user826397-很好-攻击者可以修改网络层。这肯定更容易。