【发布时间】:2013-12-30 17:47:59
【问题描述】:
我目前正在为一家保险公司客户门户网站做前端开发,出于安全原因,他们的一位开发人员担心使用 typekit。有谁知道在安全网站上使用 typekit 是否存在合法风险?另外,如果有人有一些我可以发送给这个开发人员的文档,这真的很有帮助,我(令人惊讶的是)在 typekit 网站上找不到任何可以让他放心的东西。
谢谢!
【问题讨论】:
我目前正在为一家保险公司客户门户网站做前端开发,出于安全原因,他们的一位开发人员担心使用 typekit。有谁知道在安全网站上使用 typekit 是否存在合法风险?另外,如果有人有一些我可以发送给这个开发人员的文档,这真的很有帮助,我(令人惊讶的是)在 typekit 网站上找不到任何可以让他放心的东西。
谢谢!
【问题讨论】:
包含 Typekit 字体的方法有多种。当您使用指向 Typekit 服务器上的字体文件的 @font-face 规则托管自己的 CSS 时,这通常没问题。
在这种情况下,Typekit 将接收用户正在浏览的页面的 URL 作为引荐来源网址,但通常 URL 中不应包含敏感信息,因此应该没问题。 (如果您有类似重置密码链接之类的东西,这可能不是真的 - 如果有,请注意确保此类 URL 只能访问一次,以便之后链接中的 ID 毫无价值。)
但是有一个变体,您可以在其中包含指向它们的脚本标记:
<script type="text/javascript" src="https://use.typekit.com/some_id.js"></script>
如果您的网站做了任何敏感的事情,这是一个坏主意,因为它让 typekit 可以完全控制用户在您的网站上所做的一切。如果他们作恶(或被入侵),他们可以窃取在您网站上输入的任何密码、删除网站上的所有用户数据、将用户重定向到浏览器漏洞,等等。
一般来说,您永远不应该包含来自您对网站安全性没有 100% 信任的任何人的远程脚本或样式表。
无论何时您嵌入内容,无论是 JS、CSS、字体还是其他任何内容,从外部来源到敏感页面,您都在增加您的攻击面。这并不一定意味着存在或将会存在特定的攻击,但它确实创造了更多潜在可能使您的网站受到威胁的方式。
确实,即使没有 JavaScript,也有使用 Web 字体的实际攻击,based on browser / OS bugs 和简单的 based on interactions of deliberate browser features。出于这个原因,Firefox 安全扩展 NoScript blocks CSS @font-face by default。
如果您想在您的安全网站上使用自定义字体,最安全的方法是自己托管它 - 可以在网站本身上,或者更好的是,来自您下方的单独 no-cookie domain控制,但通过浏览器同源策略与您的主要网站内容隔离。
【讨论】: