白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站

Mac Zoom 缝隙的曝出将 CORS(跨源资源共享,Cross Origin Resource Sharing)拉入了群众视界,可是坦白地讲,“不了解 CORS 的 Web 开白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站发人员实在太多了”——无论是新手仍是经验丰富的开发人员。

那么是由于 CORS API 过于杂乱和紊乱?仍是说开发者需求环绕 CORS 和 CSP 等问题对开发人员翻开更好的教育?......无论是何种状况,这都不是忘掉过滤数据源的正当理由。

声明:本文已获作者 Chris Foster 翻译授权。

作者 | Chris Foster

译者 | 弯月,责编 | 郭芮

以下为球译文:

从事全栈技术咨询作业的最大优势就在于,我能够与许多来自各个职业、不同规划、不同技术水平的开发人员协作。这是一个了解“民间疾苦”的良机。最近我发承兑汇票现了一个遍及的问题:不了解CORS(Cross Origin Resource Sharing,跨源资源共享)作业原理的Web开发人芬兰人员实在太多了。

美食猎人 白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站

鉴于最近的Zoom缝隙,我觉得应该及时指出这个问题。安全研究员Jonathan Leitschuh发现Zoom会在本地发动一个Web服务白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站器监听http://lo瞿鸿燊calhost:19421。当你加载Zoom的链接时,Zoom网站会向localhost的Web服务器发送恳求,并指示它翻开本地的Zoom运用。

Jonathan Leitschuh介绍表明(在CSDN此前发布的《》一文中也曾具体报导过):

我还发现,该页面宣布的不是惯例的AJAX恳求,而是从在本地运转的Zoom Web服务器中加载图画,图画的尺度代表不同的服务器过错/状况代码。

其间的case-switch逻辑如下:

让我感到费易企记解的一个问题是,为什么这个Web服务器会回来经过图画文件的尺度编码的数据?原因在于,这样做能够绕过跨源资源共享(Cross Origin Resource Sharing,即CORS)。实际上浏览器会有意疏忽localhost上运转的服务器的一切CORS战略。

我还发现,该页面宣布的不是惯例的AJAX恳求,而是从在本地运转的Zoom Web服务器中加载图画,图画的尺度代表不同的服务器过错/状况代码。

其蔡国华窝案中的case-switch逻辑如下:

让我感到隐晦的一个问题是,为什么这个Web服务器会回来经过图画文件的尺度编码的数据?原因在于,这样做牙痛能够绕过跨源资源共享(Cross Origin Resource Sharing,即CORS)。实际上浏览器会有意疏忽localhost上运转的服务器的一切CORS战略。

——上述最终一句话不正确,由于Chrome的确会遵从localhost Web服务器的CORS头。

假如你是一名Web开发人员,那么当你运用前端运用创立的React应复方丹参滴丸用在某个端口上,而你的后台API在另一个端口上时,你很可能也遇到过这种状况。你的运用会对localhost宣布跨源恳求,并且一切浏览器都支撑该功用。

在我看来,Zoom在发布这个功用的时分并不了解CORS。假如浏览器阻挠这种操作,那么他们也就无法发送这样的AJAX恳求。相反,他们运用图画绕开了CORS问题。可是,他们的这牛骨头汤的做法种做法实际上在Zoom中埋下乌贼的做法了一个严重缝隙,由于不只Zoom网站能够触发本机客户端的操作并拜访呼应,互联网上的任何其他网站也能够。

那么怎样才能安全地完成这个功用呢?监听localhost:19421的Web服务器应该完成REST API,并将Access-Control-Allow-Origin头设置为https://zoom.us。这样就能够保证只要在zoom.us域上运转的Java才能与localhost的Web服务器通讯。此外,为了阻挠页面主动在后台翻开zoom.us,还应该设置一个能够阻挠iframe烘托的内容安全战略(Content Security Policy,即CSP)头。

即便如此,依然还有一个缝隙:任何页面都能够将浏览器重定向到zoom.us链接,让你意外闯入一个生疏的会议。但这是Zoom规划的用户体会,并非软件缝隙问题。就个人而言,我以为这种办法也不正确。白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站他们曾说到他们期望经过直接翻开运用程序来增强用户体会,但杰出的用户体会规划规矩之一便是软件的行为应该在用户的预料之中。

我可不期望在点击一个链接的时分,忽然与不认识的人视频。Zoom打破了用户的这种期望,即便出于用户智诚联行体会的原因,他们不期望浏览器显现内置的弹出窗口,他们也应该在运用中显现此弹出窗口!Google Meet便是这么做的:

让咱们重回CORS的论题。权且不管用户体会怎么,在localhost上拼装电脑运转Web服务器都存在危险。绝对不应该为互联网上的每个网站供给拜访某些功用的特权,例如装置软件。CORS能够保证这白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站种劳作合同范本安全性,所以千万不要绕开CORS!

我不清楚Zoom选用这种方法完成该功用的原因终究是不是他们没了解CORS。可是,我与多个人进行了攀谈,咱们都以为除此之外没有其他合理的理由来解说他们的这种完成。在Reddit上,lerunicorn有了新的发现,他说Fire凰权fox能够阻挠从安全的方位引证非安全数据源的XHR,这能够解说Zoom选用这种完成背面的动机。可是,即便数据源是localhost,Firefox也支撑该功用。或许,还能够让本白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站地运用生成仅有的自签名证书。再不济还能够运用浏览器扩展。无论是何种状况,这都不是忘掉过滤数据源的正当理由。

不只仅是Zoom,许多与我有过攀谈的开发人员也都不了解CORS的作业原理。Stack Overflow上就有许多这类的比方。不幸的是,许多问题的答案悦引荐的都是十分不安全的默认设置,比方这一段ExpressJS的代码(h奥秘老公晚上见ttps://enable-cors.org/server_expressjs.html),假如你彻底仿制的话,你的运用程序就很简单遭到进犯。其他软件开发商也有与Zoom相同的缝隙。

开发人员仅仅想让他们的代码运转起来,而绕过同源战略代码恰巧能让程序运转,因而才呈现了Zoom现在的局势。

无论是新手仍是经验丰富的开发人员,都可能不太了解CORS。是不是由于CORS API过于杂乱和紊乱?仍是说咱们需求环绕CORS和CSP等问题对开发人员成都安全教育渠道翻开更好的教末日坍塌育?我不确定,但从现在的方式来看,咱们还需求加倍努力。

原文:白带是什么,金丝楠木-188金博宝手机版app_188宝金博备用网址_金博宝网站https://fosterelli.co/developers-dont-understand-cors

作者:ChrisFoster,软件工程师@Two Story Robot。

转载原创文章请注明,转载自188金博宝手机版app_188宝金博备用网址_金博宝网站,原文地址:http://www.hervanatheband.com/articles/1267.html

上一篇:纪晓岚,射精-188金博宝手机版app_188宝金博备用网址_金博宝网站

下一篇:西部数据,belgium-188金博宝手机版app_188宝金博备用网址_金博宝网站