来自 Google Chrome 中的用户脚本的跨域 XHR

     2023-05-08     156

关键词:

【中文标题】来自 Google Chrome 中的用户脚本的跨域 XHR【英文标题】:Cross-origin XHR from a user script in Google Chrome 【发布时间】:2010-12-28 13:01:07 【问题描述】:

有没有人幸运地从 Google Chrome 中的用户脚本执行跨源 XHR?请求通过服务器(我可以在日志中看到它们),但是永远不会触发 readystatechanged 事件。

扩展权限似乎不起作用。 JSONP 也不是。

【问题讨论】:

根据code.google.com/chrome/extensions/xhr.html,如果将用户脚本包装在扩展中,扩展清单可以允许用户脚本进行XSS XHR。 感谢您的回复,我确实读过这方面的信息。这种方法的问题是我不能在 userscripts.org 上托管它并期望它像其他脚本一样立即工作。 【参考方案1】:

Chrome 的当前版本(13.0.781 或更高版本)现在支持大部分或全部 GM_xmlhttpRequest()Doc 功能 -- 包括跨域请求。 见Issue 18857: Support cross-site XMLHttpRequest in content scripts。

所以这个脚本现在在 Chrome(当然还有 Firefox)上运行得非常好:

// ==UserScript==
// @name            _Cross domain (XSS) GM_xmlhttpRequest, Chrome too
// @include         http://***.com/*
// @grant           GM_xmlhttpRequest
// ==/UserScript==

GM_xmlhttpRequest ( 
    method:     "GET",
    url:        "http://www.google.com/",
    onload:     function (response) 
                    console.log (   response.status,
                                    response.responseText.substring (0, 80)
                                );
                
 );

(安装该脚本,然后浏览任何 SO 页面。该脚本会将 Google 主页的前 80 个字符写入控制台。)

【讨论】:

谢谢。我已经很久没有看过我的用户脚本了,这绝对让我有理由确保它与 Chrome 兼容。 请注意,这只适用于@require(就像上面一样),not for @match。后者会抛出XMLHttpRequest cannot load [...] Origin chrome-extension://[...] is not allowed by Access-Control-Allow-Origin.【参考方案2】:

从 Chrome 13 开始,如果您在清单中包含对网站的权限,则可以在内容脚本中执行跨源请求。

Chrome 中的用户脚本是内容脚本。内容脚本不能制作跨域 XHR。如果你想做跨域 XHR,应该在扩展页面(背景、弹出窗口、选项)中完成。

更多信息: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

【讨论】:

从 Chrome 13.0.781 开始,此答案现已过时。

防止来自静态站点的跨站点脚本攻击

】防止来自静态站点的跨站点脚本攻击【英文标题】:Preventcross-sitescriptingattackfromstaticsite【发布时间】:2017-11-0615:09:27【问题描述】:我使用带有联系我们表单的GitHubPages托管了一个静态HTML页面。我找到了一个解决方案,因此... 查看详情

如何在 Firefox 中允许来自greasemonkey 脚本的跨域请求?

】如何在Firefox中允许来自greasemonkey脚本的跨域请求?【英文标题】:HowdoIallowCross-OriginRequestsfromgreasemonkeyscriptsinFirefox?【发布时间】:2014-09-0112:31:47【问题描述】:我正在开发一个Greasemonkey脚本,它在网页上实现了几个工具。此... 查看详情

将来自 Google Apps 脚本的 JSON 作为“访问网络应用程序的用户”提供服务

】将来自GoogleApps脚本的JSON作为“访问网络应用程序的用户”提供服务【英文标题】:ServingJSONfromGoogleAppsScriptas"useraccessingtheweb-app"【发布时间】:2013-04-2520:12:23【问题描述】:尝试以发出请求的用户的身份提供由GoogleApps... 查看详情

Google Play 警告:您的应用包含跨应用脚本漏洞

...间】:2019-04-0507:55:38【问题描述】:大家好,我收到一封来自googleplay的电子邮件,内容涉及我发布的一个或多个应用程序中的跨应用程序脚本漏洞。我在我的应用程序中使用WebView,所以他们说我的应用程序包含w 查看详情

来自 Google App 脚本的 Firebase 身份验证?

】来自GoogleApp脚本的Firebase身份验证?【英文标题】:FirebaseAuthenticationfromGoogleAppScript?【发布时间】:2017-08-1710:07:03【问题描述】:我正在尝试将firebase身份验证添加到我的googledocaddon。我的目标是有一个侧边栏显示身份验证后来... 查看详情

chrome 扩展中的跨域 XMLHttpRequest

】chrome扩展中的跨域XMLHttpRequest【英文标题】:Cross-OriginXMLHttpRequestinchromeextensions【发布时间】:2012-03-1409:11:06【问题描述】:根据chrome扩展API,如果设置了权限,则应允许使用XMLHttpRequest对象进行跨域调用:只要首先请求跨域权... 查看详情

来自 Google Apps 脚本的 Jdbc 连接错误

】来自GoogleApps脚本的Jdbc连接错误【英文标题】:JdbcconnectionerrorfromGoogleAppsScript【发布时间】:2018-12-1413:05:31【问题描述】:我创建了一个GoogleCloudProjectMySQL数据库,以与GoogleAppsScript提供的Jdbc服务结合使用。一切都按计划进行。... 查看详情

如何使用 Google Apps 脚本将来自 Google 电子表格和 ScriptDB 的数据插入 BigQuery 表

】如何使用GoogleApps脚本将来自Google电子表格和ScriptDB的数据插入BigQuery表【英文标题】:HowtoinsertdatafromGooglespreadsheetsandScriptDBsintoBigQuerytablesusingGoogleAppsScripts【发布时间】:2013-10-1819:23:47【问题描述】:我们已经成功地为用户团... 查看详情

chrome中的跨域ajax POST

】chrome中的跨域ajaxPOST【英文标题】:CrossdomainajaxPOSTinchrome【发布时间】:2011-08-2118:48:22【问题描述】:关于跨域AJAX问题有几个主题。我一直在看这些,结论似乎是这样的:除了使用JSONP之类的东西或代理解决方案之外,您应该... 查看详情

google停止推出chrome79

...再加载该数据。  据Zdnet报道称,一位开发人员表示,来自用户的加密登录信息不再可用,且无法记住其登录信息的用户将无法再访问其帐户。  从用户的角度来看,似乎所有内容都已重置,这也导致了官方Play商店中的上述... 查看详情

Playframework 中的跨站点脚本和 Web 参数篡改预防

】Playframework中的跨站点脚本和Web参数篡改预防【英文标题】:Cross-SiteScriptingandWebParameterTamperingpreventioninPlayframework【发布时间】:2012-03-2219:41:42【问题描述】:在发布我们的第一个公开alpha版本http://wwww.trademango.com之后,它使用Pl... 查看详情

来自 Gsheet 文件的 Google Apps 脚本代码复制粘贴问题

】来自Gsheet文件的GoogleApps脚本代码复制粘贴问题【英文标题】:IssuewithGoogleAppsScriptcodecopy-pastefromGsheetfile【发布时间】:2020-04-1617:51:24【问题描述】:我创建了一个代码,用于将最近上传的Gsheet文件中的值复制粘贴到另一个文件... 查看详情

在 Selenium 中更改 Google Chrome 用户代理的方法?

】在Selenium中更改GoogleChrome用户代理的方法?【英文标题】:WaytochangeGoogleChromeuseragentinSelenium?【发布时间】:2018-09-0822:35:22【问题描述】:我试图找出一种方法,每当我在这个特定脚本中通过Selenium(在Python中)打开Chrome时,Chro... 查看详情

如何在 Google Chrome 的 Greasemonkey 脚本中使用 jQuery?

】如何在GoogleChrome的Greasemonkey脚本中使用jQuery?【英文标题】:HowcanIusejQueryinGreasemonkeyscriptsinGoogleChrome?【发布时间】:2011-01-1520:33:23【问题描述】:你们中的一些人可能知道,谷歌浏览器对Greasemonkey脚本设置了一些严格的限制... 查看详情

Google 应用脚本中的 Adword 脚本

】Google应用脚本中的Adword脚本【英文标题】:AdwordScriptinGoogleAppScripts【发布时间】:2013-07-1207:35:55【问题描述】:我无法在GoogleAppScript中找到AdwordAPI支持,我可以从adword帐户编写adword脚本,但目前我正在处理多个帐户(几乎25个... 查看详情

如何避免 chrome web 扩展中的跨域读取阻塞(CORB)

】如何避免chromeweb扩展中的跨域读取阻塞(CORB)【英文标题】:HowtoavoidCross-OriginReadBlocking(CORB)inachromewebextension【发布时间】:2019-07-1403:50:46【问题描述】:我写了一个chromewebextension来避免在开发自己的网络应用程序时出现CORS限... 查看详情

chrome浏览器的跨域设置

...;如下图所示:3.点击应用和确定后关闭属性页面,并打开chrome浏览器。如果浏览器出现提示“你使用的是不受支持的命令标记--disable-web-security”,那么说明配置成功。版本号49之后的chrome跨域设置chrome的版本升到49之后,... 查看详情

来自 GmailMessage 类正则表达式的 Google Apps 脚本 getPlainBody() 不起作用

】来自GmailMessage类正则表达式的GoogleApps脚本getPlainBody()不起作用【英文标题】:GoogleAppsScriptgetPlainBody()fromGmailMessageclassregexnotworking【发布时间】:2021-10-2306:40:37【问题描述】:这是我关于***的第一个问题,所以请告诉我如何提高... 查看详情