托管第三方Javascript有哪些风险?

问题描述:

我是我公司的新开发人员,我主要负责前端Web开发。我们的销售和营销人员经常会要求我们的团队在我们的网站上加入第三方JavaScript。托管第三方Javascript有哪些风险?

“这是一个‘小代码片段’。我们的供应商要求,如果你可以把这个在我们的主页”

这让我很紧张。

我知道这些脚本可以在我们的网页慢下来,和我在一些我已经围绕一些代码try/catch块,以确保这些第三方错误不会产生影响其他脚本的情况下发现这一页。

这些脚本来我往多种形式...

有些是我们举办的供应商提供的脚本...

<script src="http://www.mycompany.com/js/vendor-file.js" type="text/javascript"> 

...有些是在我们的代码参考,但外部托管

<script src="http://www.vendor.com/js/file.js" type="text/javascript"> 

...和一些脚本通过写DOM

出现在我们的网站,其中插入标签到我们的头上直列0
var a = document.createElement("script"); a.type = "text/javascript" ... etc. 

一个不太重要的问题,但仍然重要的是cookie的写作 - 并且超过了IE6的20个cookie限制(是的,一个重要的客户群仍然在IE6上,它们代表真正的$$$) - 所以我们需要希望),我们的域名托管的任何javascripts都不会丢弃任何其他cookie。

但是,除了从cookie的问题 - 什么额外的风险/场景/危险存在,我需要知道或应该找出来 - 这样我就可以使我们的网站和我们的客户满意。

感谢

+1

您的老板/经理是否意识到与将供应商的片段放在网站上相关的问题? *我认为你是非常紧张的。确保你和上级的人讨论过,如果有什么事情真的发生了错误,你可以说他们知道并且在开始的时候就好了。 – FrustratedWithFormsDesigner 2010-10-08 20:04:38

+0

如果你正在处理商务,你可以看到很多这样的。我们倾向于在我们的结帐页面上获取大量的不同流量和推介优惠。在某些情况下,他们只是像素,但在其他情况下,他们是JavaScript,无论哪种方式,我不是一个大风扇,因为只有一个可以阻止您的网页加载:/ – dstarh 2010-10-08 20:19:29

不是一个有很多权力的大词。运用得很好。

你没有义务(除非法律及合同协议),包括来自你不知道来源且完全信任任何代码片段。如果您感到紧张,并且您对网站的稳定性和安全性负有责任,那么请说明一下。

JavaScript可以是一个野兽驯服。一个小小的,看起来无害的脚本很容易让整个房子崩溃。永远不要对待任何简单的脚本,比如它“只是一件愚蠢的小东西”。它只需要一个脚本来替换一个关键函数,比如说JQuery或者AJAX或者其他一些库依赖的函数,并且你的站点将会一举成名。

+0

+1为“否”散文:) – Jas 2010-10-08 20:11:06

+0

说得好。一旦你的页面上有一个远程脚本,它就拥有你的页面。它可以监控和重写(或意外中断)任何想要的东西。 – 2010-10-08 20:40:34

总有一个供应商的服务器被攻破的可能性,他们做一些XSS的。

这听起来像你已经知道的主要因素:减慢页面,第三方非托管脚本的机会可能会破坏或不存在,造成的问题。

这也取决于这些第三方的可靠性。他们的脚本总是可以被恶意代替。

+0

对我来说......这是真正的问题... OP链接到外部脚本,供应商的网站被黑客攻击,现在他的页面中包含恶意软件... – w4ik 2010-10-08 20:10:58

为什么要承担您没有编写代码的责任?如果出现任何问题,我敢打赌你的经理不会让供应商承担责任 - 他们会持有你。所以,对这个人说不,即使这意味着改变你的工作。

IE 8+有一个名为In Private Filtering的新功能,它基本上说明它是否从N(可配置)数量的域中找到相同的JavaScript文件,并在达到限制后才阻止它。例如,如果它是jQuery,那将会很糟糕。这是默认禁用的,但如果用户使用它仍然是一个问题。