我知道这有点矛盾,因为浏览器必须下载字体来渲染它,但我想知道是否有办法托管它无法直接下载(或缓存到用户的计算机上那件事。)
我想出的一个解决方案是创建一个PHP脚本,将当前时间哈希到第二个(添加盐)。如果GET请求中的特定变量与此哈希匹配,则它将发出该字体的MIME类型的标头,然后输出该字体文件的内容。
然后我会在样式表中重新创建哈希,并将字符串连接到PHP脚本的有效请求。
这是基本的想法。我有它的工作。但是这有两个缺陷:
浏览器也可以在任何地方缓存字体(不是缓存会有帮助,因为URI中的哈希几乎总是不同)。
编辑:我可以使用任何$_SERVER
个变量吗?
答案 0 :(得分:2)
正如其他答案所说,对于真正想下载它的人来说,这是非常困难的(不可能的)。几乎总有一种方式。但是,为了给您一些想法,this article描述了Typekit如何处理问题。
答案 1 :(得分:1)
如果您希望浏览器可以使用该字体来显示您的页面,则必须允许以某种方式下载该字体。一旦它被放到电线上并发送到浏览器,用户将用它做什么就完全没有了。
你只能让它更难以检索,而且知识渊博的用户可以轻而易举地绕过你做的任何事情。
答案 2 :(得分:0)
您可以使解决方案变得更加困难,但是如果您的目标是保护字体IP,则浏览器无法下载。对于专门的对手,你无法控制浏览器的功能,无论你怎么努力。
但是,您可以做的是提供服务器端代码以使用您的字体生成图像,并提供该图像。我假设你不是试图阻止用户看到这种字体的渲染,只是直接使用字体?