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

rst*_*rim 9 javascript xss frontend

我是我公司的新开发人员,我主要进行前端Web开发.我们的销售和营销人员经常要求我们的团队在我们的网站上加入第三方javascripts.

"这是一个'小代码片段'.我们的供应商询问您是否可以将其放入我们的主页"

这让我非常紧张.

我知道这些脚本会降低我们的页面速度,我发现在很多情况下我不得不用try/catch块包围一些代码,以确保这些第三方错误不会影响页面上的其他脚本.

这些脚本以各种形式出现在我面前......

一些供应商提供的脚本我们托管...

<script src="http://www.mycompany.com/js/vendor-file.js" type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

...有些是我们的代码中的引用,但是在外部托管

<script src="http://www.vendor.com/js/file.js" type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

...有些脚本在我们的网站上显示为内联,它通过写入DOM将标签插入我们的头部

var a = document.createElement("script"); a.type = "text/javascript" ... etc.
Run Code Online (Sandbox Code Playgroud)

一个较小的问题,但仍然很重要的是cookie写 - 并超过IE6的20个cookie限制(是的,一个重要的客户群仍然在IE6上,他们代表真正的$$$) - 所以我们要求(希望)没有javascripts托管在我们的域名上删除任何其他cookie.

但是,除了cookie问题 - 我还需要了解或应该注意哪些额外的风险/情景/危险 - 因此我可以让我们的网站和客户满意.

谢谢

-丰富

Mik*_*fer 7

不是一个有很多权力的大词.操作得很好.

您没有义务(禁止合法和合同协议)包含您不知道并完全信任的来源的任何代码段.如果您感到紧张,并且您对您网站的稳定性和安全性负责,那就说不.

JavaScript可以成为驯服的野兽.一个看似无害的小脚本很容易让整个房子崩溃.永远不要把任何简单的脚本视为"只是一个愚蠢的小东西".所需要的只是一个脚本替换一个关键功能,比如JQuery,或AJAX,或者其他一些库所依赖的,而你的网站将会熠熠生辉.