【问题标题】:What are the risks associated with Hosting 3rd party Javascripts?托管 3rd 方 Javascript 有哪些风险?
【发布时间】:2011-04-23 01:48:33
【问题描述】:

我是公司的一名新开发人员,主要从事前端 Web 开发。我们的销售和营销人员经常要求我们的团队在我们的网站上加入第 3 方 JavaScript。

“这是一个'小代码 sn-p'。我们的供应商询问您是否可以将它放在我们的主页中”

这让我很紧张。

我知道这些脚本会减慢我们的页面速度,而且我发现在许多情况下我不得不用 try/catch 块包围一些代码,以确保这些第 3 方错误不会影响其他脚本页。

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

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

<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 问题(我需要了解或应该注意哪些其他风险/场景/危险)之外,我可以让我们的网站和客户满意。

谢谢

-丰富

【问题讨论】:

  • 您的老板/经理是否意识到将供应商的 sn-ps 放在网站上的相关问题? 认为你很紧张是对的。确保与上级讨论,如果有任何事情真的出错了,你可以说他们一开始就知道并且没问题。
  • 如果您正在处理商业问题,您可以看到其中的许多。我们倾向于在结帐页面上获得很多不同的流量和推荐交易。在某些情况下它们只是像素,但在其他情况下它们是 javascript,无论哪种方式我都不是一个大粉丝,因为只有一个可以阻止您的页面加载:/

标签: javascript xss frontend


【解决方案1】:

“不”是一个大词,具有很大的影响力。好好运用。

您没有义务(除非法律和合同协议)包含来自您不知道和完全信任的来源的任何代码 sn-ps。如果您感到紧张,并且您对自己网站的稳定性和安全性负责,请说不。

JavaScript 是一头难以驯服的野兽。一个看似无害的小脚本很容易让整个房子崩溃。永远不要将任何简单的脚本视为“只是一个愚蠢的小东西”。只需要一个脚本替换一个关键函数,比如 JQuery 或 AJAX 或其他一些库所依赖的函数,您的网站就会一蹶不振。

【讨论】:

  • 说得好。一旦你的页面上有一个远程脚本,它就拥有你的页面。它可以监视和重写(或意外破坏)它想要的任何内容。
【解决方案2】:

供应商服务器总是有可能遭到入侵,并且他们执行某种 XSS。

【讨论】:

    【解决方案3】:

    听起来您已经意识到主要问题:减慢页面速度,以及第 3 方非托管脚本可能会中断或不存在,从而导致问题。

    这还取决于这些第 3 方的可靠性。他们的脚本总是会被恶意代码替换。

    【讨论】:

    • 对我来说...这是真正的问题... OP 链接到外部脚本,供应商的网站被黑客入侵,现在他的页面中包含恶意软件...
    【解决方案4】:

    为什么要为不是您编写的代码承担责任?如果出现任何问题,我敢打赌你的经理不会追究供应商的责任——他们会追究你的责任。所以对这个说不,即使这意味着你要换工作。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-27
        相关资源
        最近更新 更多