我是我公司的新开发人员,我主要从事前端Web开发。我们的销售和营销人员经常要求我们的团队在我们的网站上加入第三方javascripts。
“这是一个'小代码片段'。我们的供应商询问您是否可以将其放入我们的主页”
这让我非常紧张。
我知道这些脚本会降低我们的页面速度,我发现在很多情况下我不得不用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将标签插入我们的头部
var a = document.createElement("script"); a.type = "text/javascript" ... etc.
一个较小的问题,但仍然很重要的是cookie编写 - 并超过IE6的20个cookie限制(是的,一个重要的客户群仍然在IE6上,它们代表真正的$$$) - 所以我们要求(希望)我们域上托管的javascripts不会删除任何其他cookie。
但是,除了cookie问题 - 我还需要了解或应该注意哪些额外的风险/情景/危险 - 因此我可以让我们的网站和客户满意。
由于
富
答案 0 :(得分:7)
不是一个有很多权力的大词。操作得很好。
您没有义务(禁止合法和合同协议)包含您不知道并完全信任的来源的任何代码段。如果您感到紧张,并且您对网站的稳定性和安全性负有责任,那么就是说。
JavaScript可以成为驯服的野兽。一个看似无害的小脚本很容易让整个房子崩溃。永远不要把任何简单的脚本视为“只是一个愚蠢的小东西”。所需要的只是一个脚本替换一个关键功能,比如JQuery,或AJAX,或者其他一些库所依赖的,并且你的网站将会充满荣耀。
答案 1 :(得分:3)
供应商服务器总是有可能遭到入侵,他们会做某种XSS。
答案 2 :(得分:2)
听起来你已经意识到了主要问题:减慢页面的速度,第三方非托管脚本可能会破坏或不存在,从而导致问题。
这也取决于这些第三方的可靠性。他们的脚本总是会被恶意的东西取代。
答案 3 :(得分:0)
为什么要为你没写的代码承担责任?如果出现任何问题,我打赌你的经理不会让供应商负责 - 他们会抱你。所以对这个说不,即使这意味着改变你的工作。
答案 4 :(得分:0)
IE 8+有一个名为In Private Filtering的新功能,它基本上表明如果它从N(可配置)数量的域中找到相同的javascript文件,它只是在达到限制后阻止它。如果它是例如jquery那将是不好的。默认情况下禁用此选项,但如果用户正在使用它,则仍然存在问题。