gpt4 book ai didi

fonts - 如何保护 WebFonts

转载 作者:行者123 更新时间:2023-12-03 23:21:10 27 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




我有一个客户想要在他自己的服务器上托管他的 webfonts。我有一个 font.com 帐户,直到现在为止托管字体。我说实话fonts.com agreement (第 18 点。)他们说,您可以在自己的服务器上托管文件,但必须尽可能地保护它们。

我能想到的唯一方法是使用 HTTP_REFERER 限制对这些文件的请求。在 .htaccess .

我可以采取更多措施来保护这些字体吗?多做点有意义吗,你认为这是足够的保护吗?

我个人不相信技术复制保护,你总是可以复制你能以某种方式看到的东西。但我不希望我的客户陷入法律困境。你有这方面的经验吗?

编辑

我对法律方面也很感兴趣。如果有人可以下载字体并重新使用它,会发生什么?他们的意思是我只需要保护字体免受热链接或下载吗?

最佳答案

HTTP_REFERER 和 USER_AGENT 很容易被欺骗。话虽如此,如果您想防止热链接,那么 HTTP_REFERER 是将其限制为来自您自己的应用程序的调用的良好开端。

使用 Apache mode_security

SecFilterSelective "HTTP_REFERER" "^[^\?]*mydomain\.com"

将上述内容添加到带有字体的目录中将拒绝来自其他站点的所有不合规请求。

为了额外的安全性,当有人使用你的应用程序时,你在服务器上给他们一个 session (比如 PHP),并在那里存储一个 uniqueId。
<?PHP
// #header.php - in the head of the page that uses the font
// ...
if( !isset( $_SESSION['uniqueId'] ) ) {
$_SESSION['uniqueId'] = rand( pow(2,16), pow(2,31) );
}
$uniqueId = $_SESSION['uniqueId'];

echo '<script type="text/javascript" src="http://foo.com/getFont.php?u='.$uniqueId.'"></script>';
?>

这为字体服务。
<?PHP
// #getFont.php - serve your fonts from here
// ...
if( !isset( $_GET['u'] ) || !isset( $_SESSION['uniqueId'] ) || $_SESSION['uniqueId']!=$_GET['u'] ) {
die('Bad Request');
}

// cat out the file contents here for the request font file
?>

然后,你为你的字体引用一个动态页面(比如 getFont.php?uniqueId=foo),如果 unqiueId 匹配他们的 session ,你只返回字体文件,否则你认为它是一个欺骗性的引用热链接。这本质上与将文件放在经过身份验证的仅限用户的目录中相同,但只有在用户已登录时才有效,而上述方法仅要求用户在加载字体之前加载页面,以防止热链接.

关于fonts - 如何保护 WebFonts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com