2010-09-22 61 views

回答

3

如果其他站点将脚本标记指向托管在您站点上的JavaScript,那么对您而言,没有太多的安全风险。其他网站都承担着安全风险,他们必须信任不能用会话窃取cookie-sniffer等取代你的JavaScript。我想如果你的服务变得非常流行,你的网站可能成为一个更有吸引力的目标。恶棍攻击,以便他们可以通过更改您的服务器上的JS对其他网站进行类似的攻击。

对于性能请确保您的脚本尽可能使用far-future expires标头高速缓存。您还想缩小它以降低带宽成本。也许可以使用针对静态内容进行优化的服务器(nginx等),而不是使用可能用于同一域上的动态内容的完整Apache实例。如果您期望很多的站点能够将您的脚本热链接,请考虑在CDN上托管JS。

样式可能非常棘手,因为您无法控制适用于您的脚本插入到第三方站点的DOM元素的样式。也许工具提示可能是一个iframe,它会在您的网站上呈现一个小小的工具提示大小的页面,然后您将控制所有内容。更多的带宽给你,你的工具提示必须是方形的。

+0

很好的答案,真的很感激它。如果大多数样式是由脚本生成的内联CSS,会怎么样?脚本的数据只是一个轻量级的jsonp调用。构建要发送到脚本的数据的服务器上的操作会在滑动超时时缓存。我在共享主机上,所以没有无cookie的静态域 - 除非有办法在discountasp.net服务器上做到这一点?尽快处理缓存脚本和样式表。 – Chaddeus 2010-09-23 05:53:52

+0

@Chad Inline CSS与外部样式表有相同的困难,即来自第三方网站自己的样式表的继承样式。我不认为内联会有帮助。您可能可以执行类似于CSS重置的操作,该重置将应用于要添加的DOM片段的根元素的所有后代? '#someveryuniqueidforyourrootelement * {/ *重置规则* /}' – Day 2010-09-23 12:23:43

+0

感谢您的回答! – Chaddeus 2010-09-24 00:31:14