Tag: 跨域

是否有可能执行asynchronous跨域file upload?

有可能的! 参见下文。 首先,让我使用这个图解释如何实现asynchronousfile upload : 抱歉。 我已经closures了我的一个域名,现在形象已经消失了。 这是一个非常好的形象,但。 这是之前我发现堆栈溢出通过Imgur上传图像。 正如你所看到的,诀窍是让HTTP响应加载到一个隐藏的IFRAME元素而不是页面本身。 (这是通过在使用JavaScript提交FORM时设置FORM元素的target属性来完成的。) 这工作。 但是,我面临的问题是服务器端脚本在不同的域上 。 FORM-submit是一个跨域HTTP请求。 现在,服务器端脚本已经启用CORS,这使得我的网页有权读取从我的页面到该脚本的HTTP请求的响应数据 – 但是,只有当我通过Ajax接收HTTP响应时才有效, ergo,JavaScript。 但是,在这种情况下,响应是针对IFRAME元素的。 一旦XML响应登陆到IFRAME,它的URL就是删除脚本 – 例如http://remote-domain.com/script.pl 。 不幸的是,CORS不包括这种情况(至less我认为) – 我无法读取IFRAME的内容,因为它的URL不匹配页面的URL(不同的域)。 我得到这个错误: 不安全的JavaScript尝试访问来自具有URL hxxp://my-domain.com/outer.html的框架的URL hxxp://remote-domain.com/script.pl。 域,协议和端口必须匹配。 而且由于IFRAME的内容是一个XML文档,所以IFRAME里面没有可以使用postMessage东西。 所以我的问题是: 如何从IFRAME获取XML内容? 正如我上面所说,我能够直接检索跨域的HTTP响应(CORS启用),但似乎我无法读取跨域HTTP响应,一旦他们加载到IFRAME。 就好像这个问题不能解决不了,让我排除这些解决scheme : easyXDM和类似的技术需要在远程域上的一个端点, 更改XML响应(包含SCRIPT元素), 服务器端代理 – 我知道我可以有一个服务器端脚本在我的域可以作为代理。 那么,除了这两个解决scheme之外,可以这样做吗? 可以办到!! 事实certificate,可以伪造一个模仿multipart/form-data FORM提交的XHR请求(Ajax请求)(在上面的图像中使用它来将file upload到服务器)。 诀窍是使用FormData构造函数 – 阅读这篇Mozilla黑客文章获取更多信息。 这是你如何做到的: // STEP 1 […]

何时安全启用CORS?

我正在开发一个JSON / REST Web API,我特别希望第三方网站能够通过AJAX调用我的服务。 因此,我的服务正在发送着名的CORS标题: Access-Control-Allow-Origin: * 它允许第三方网站通过AJAX调用我的服务。 迄今为止都很好。 然而,我的networkingapi的一个小部分是非公开的,需要authentication(OAuth和access_token cookie相当标准的东西)。 在我的网站的这一部分启用CORS是否安全? 一方面,如果第三方网站可能有一个也与我的服务的这部分交互的ajax客户,那将是很酷的。 然而,起源相同的原因首先在于这可能是有风险的。 您不希望任何后来访问的网站能够访问您的私人内容。 我担心的情况是,用户通过网站或通过他信任的网站login我的networkingAPI,他忘记注销。 这是否允许每个其他网站,他后来访问他的私人内容使用现有的会议? 所以我的问题: 在非公开内容上启用CORS是否安全? 如果启用了CORS的服务器通过cookie设置session_token,这个cookie是否会保存在CORS服务器或主网页服务器的域下?

Chrome中的“访问控制 – 允许 – 来源”不允许原始位置为null。 为什么?

我正在使用一些Javascript在本地PC上运行。 我正在使用jQuery CSV插件(http://plugins.jquery.com/project/csv)加载一个CSV文件到JavaScript数组。 脚本很简单: $(function(){ $.get("file.csv", function(data){ stuff = $.csv()(data); }) }) 在Firefox中,它工作正常,但在Chrome浏览器中显示“Access-Control-Allow-Origin不允许使用Origin null”。 那是什么意思? 我发现有关这个错误的跨服务器的东西的各种线程,但我只是与本地文件。

在Firefox中禁用跨域networking安全

在Firefox中,我如何在Chrome中执行相同的–disable-web-security 。 这已经发布了很多,但从来没有一个真正的答案。 大多数是附加组件的链接(其中一些在最新的Firefox中无法使用,或根本无法使用)以及“只需要在服务器上启用支持”。 这是暂时的testing。 我知道安全影响。 我不能打开服务器上的CORS,我特别是永远不能允许本地主机或类似的。 一个标志,或设置,或什么比一个插件会好很多。 我也尝试过: http : //www-jo.se/f.pfleger/forcecors ,但是一定是错误的,因为我的请求回来完全是空的,但是在Chrome中同样的请求返回正常。 再次,这只是为了testing之前推动哪一个,然后,将在一个允许的领域。

如何在我的网站上实现“使用Googlelogin”?

在我的网站上,我希望允许用户使用Google帐户login。 我打算使用openid,但是我想允许用googlelogin,因为它有更多的好处。 我注意到在过去几个网站有能力login谷歌(Gmail)帐户和IIRC,虽然他们不支持openID(但我可能是错的)。 如何实现“使用Googlelogin”?

如何为基本authentication发送正确的授权标头

我试图从我的API获取POST数据,但我不能通过基本身份validation… 我尝试: $.ajax({ type: 'POST', url: http://theappurl.com/api/v1/method/, data: {}, crossDomain: true, beforeSend: function(xhr) { xhr.setRequestHeader('Authorization', 'Basic ZWx1c3VhcmlvOnlsYWNsYXZl'); } }); 我的服务器configuration响应是: response["Access-Control-Allow-Origin"] = "*" response["Access-Control-Allow-Methods"] = "POST" response["Access-Control-Max-Age"] = "1000" response["Access-Control-Allow-Headers"] = "*" 我得到的标题是: 请求头 OPTIONS /api/v1/token-auth/ HTTP/1.1 Host: theappurl.com Connection: keep-alive Access-Control-Request-Method: POST Origin: http://127.0.0.1:8080 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 […]

IE 11第一方会话cookie在iframe中丢失

我们有一个网站(www.example.com),它将用户发送到一系列第三方页面来validation支付细节,我们在iframe中执行此操作。 最初,来自www.example.com的本地页面被加载到iframe中,并且用户被redirect到第三方URL。 一旦用户完成了第三方的步骤,他们就会被redirect回到我们网站(www.example.com)中的iframe内的页面。 这适用于我们testing过的所有浏览器,除了IE 11,我们的cookies似乎丢失了。 我们已经在Windows 7和8.1下同时在桌面和“Metro”模式下进行了检查,问题是所有版本。 当用户浏览我们的网站时,我们设置了一个会话cookie,该cookie被正确发送到最初加载到iframe中的第一方页面。 一旦用户浏览了此iframe中的某些第三方页面,会话cookie将不会随下一个请求一起发送。 如果我们将IE 11的隐私设置设置为最低值,则此问题消失,事情按预期工作。 到目前为止,所有可能的解决scheme都与P3P标题有关。 我们有一个有效和正确的P3P头和XML策略文件的设置,而这个问题只发生在IE 11中。 更新:我们有一些使用JS设置的其他cookie。 这些都是如预期般坚持。 不同的是到期date(1年的JScookies,1个月的会话cookie),域名(明确“example.com”的JScookies,空的会话cookie),以及他们是否“仅HTTP”(假JS cookies,会话cookie为true)。 我已经尝试设置所有这些选项作为会话cookie的JS Cookie,但没有什么区别。 更新2:经过更多的testing,我一直无法创build一个testing用例来重现这个问题。 任何额外的cookies,我尝试在实时代码中testing,但似乎也被打破,即使他们设置完全相同的代码作为工作的JScookies。 简而言之; 我还没有find任何工作和不工作的cookies模式。 一个可能有趣的事情要注意的是,Cookie不会被删除,他们只是没有被发送到最后的要求。 如果加载了另外一个页面,cookies会奇迹般的重新出现并被发送; 这导致我相信这是一个围绕iframe和P3P的bug。 更新3(第3天): IE 11的Cookie处理继续混淆我。 我进入微软迷宫的路越远,我就越是迷失了自己。 这里有鬼。 半梦见的安全政策碎片已经把自己编织成了一个空灵的动物,一举一动跟踪和嘲笑我。 起初,我惊呆了,惊恐地发现,几乎不可思议的forms只是在视线之外飞奔而来,但随着时间的推移,我只能从其接近的知识中获得更多的安慰。 难道这是我被派到这里面对的野兽吗? 我怎么能在这样的时候杀死我唯一的同伴?

通过跨域post发送凭证?

根据具有凭据的请求 ,Firefox将只会发送证书以及跨域post invocation.withCredentials = "true"; 设置…但似乎并不像jQuery的Ajax API提供了这个任何机制。 有什么我错过了吗? 有其他的方式可以做到吗?

CORS是跨域AJAX请求的安全方式吗?

在阅读CORS(跨源资源共享)之后,我不明白它如何提高安全性。 如果发送了正确的ORIGIN头,则允许跨域AJAX通信。 作为一个例子,如果我发送 ORIGIN: http : //example.com 服务器检查这个域是否在白名单中,如果是,则为: Access-Control-Allow-Origin:[在此处收到url] 被送回,连同回应(这是简单的情况,也有前瞻性的请求,但问题是一样的)。 这真的很安全吗? 如果有人想要收到这些信息,伪造一个ORIGIN标题看起来像是一件非常简单的事情。 此外,该标准还指出,如果Access-Control-Allow-Origin不正确,则在浏览器中执行策略,阻止响应。 显然,如果有人试图获取这些信息,他不会使用标准浏览器来阻止它。

htaccess访问控制允许来源

我正在创build一个脚本,在其他网站上进行外部加载。 它加载CSS和HTML,并在我自己的服务器上正常工作。 但是,当我尝试在另一个网站上显示这个可怕的错误: Access-Control-Allow-Origin 在这里你可以看到它完美加载: http : //tzook.info/bot/ 但在其他网站上显示错误: http : //cantloseweight.co/robot/ 我上传的加载脚本jsfiddle: http : //jsfiddle.net/TL5LK/ 我尝试编辑这样的htaccess文件: <IfModule mod_headers.c> Header set Access-Control-Allow-Origin * </IfModule> 或者像这样: Header set Access-Control-Allow-Origin * 但它仍然不起作用。