Как защитить WebFonts
У меня есть клиент, который хочет разместить свои веб-сайты на своем собственном сервере. У меня есть учетная запись font.com, где шрифт был размещен до сих пор. Я пошла правду соглашение fonts.com (пункт 18.) Где они говорят, что вы можете размещать файлы на своем собственном сервере, но у вас есть чтобы защитить их как можно лучше.
Единственный способ, которым я могу это сделать, - это ограничить запросы на эти файлы с помощью HTTP_REFERER
в .htaccess
.
Могу ли я сделать больше для защиты этих шрифтов? Имеет ли смысл делать больше, и вы думаете, что это достаточная защита?
Я лично не верю в техническую защиту от копирования, вы всегда можете скопировать то, что вы можете увидеть как-то. Но я не хочу, чтобы мой клиент попал в юридическую проблему. У вас есть опыт?
изменить
Меня интересует и юридический аспект. Что может случиться, если кто-то может скачать шрифт и повторно использовать его? Они означают, что я должен защищать шрифт только от горячей ссылки или от загрузки?
Ответы
Ответ 1
В статье вы найдете интересные методы: "Обслуживание и защита шрифтов в Интернете"
Они используют такие методы, как проверка HTTP-ссылок, кодировка base64, сегментация. Однако ни одна из них не обеспечивает полную защиту, и это согласуется с этим утверждением из статьи:
Дело в том, что для того, чтобы что-то появилось в браузере, оно должно быть в Интернете. Если он в Интернете, он не может быть полностью защищен... Мы смирились с несколькими препятствиями. Наше намерение состоит лишь в том, чтобы препятствовать случайному злоупотреблению и дать понять, что использование шрифтов из Тикита является явным и преднамеренным действием.
Во-вторых, лицензиат всегда может игнорировать соглашение, и именно поэтому такие компании, как Adobe, который выпускает один из самых превосходных шрифтов, заявляют условия использования, в том числе для Интернета, в Страница лицензирования шрифтов.
См. также Проблемы лицензирования шрифтов, обсуждаемые в спецификации веб-сайтов W3 CSS3.
Ответ 2
HTTP_REFERER и USER_AGENT можно легко подделать. При этом, если вы хотите запретить "горячую" связь, HTTP_REFERER - это хорошее начало для ограничения его на вызовы из вашего собственного приложения.
С Apache mode_security
SecFilterSelective "HTTP_REFERER" "^[^\?]*mydomain\.com"
Добавьте вышеуказанное в каталог, в котором шрифты отклонят все несоответствующие запросы с других сайтов.
Для дополнительной безопасности, когда кто-то использует ваше приложение, вы даете им сеанс на сервере (например, PHP), и вы сохраняете его уникальный.
<?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 соответствует их сеансу, иначе вы предполагаете, что это ссылка на поддельную ссылку реферала. Это по сути то же самое, что размещение файла в аутентифицированной только пользовательской директории, но это будет работать только в том случае, если пользователи вошли в систему, а указанный выше метод просто требует, чтобы пользователь загружал страницу до загрузки шрифта, чтобы предотвратить горячие ссылки.
Ответ 3
См. https://bugzilla.mozilla.org/show_bug.cgi?id=540859
По-видимому, одобрен FontShop (последний комментарий) и предложен MyFonts (http://twitter.com/#!/MyFonts/status/98767132321521664).
EDIT: Я думаю, это решение, упомянутое в комментарий 26:
RewriteCond "%{HTTP_HOST}_%{HTTP_REFERER}" "!\.?([^\.]+\.[^\.]+?)_https?://.*\1/.*$"
RewriteRule \.(woff|eot)$ - [F,NC,L]
Ответ 4
Не эксперт по Apache, но мы использовали это, и он, кажется, работает достаточно хорошо:
Options -Indexes
IndexIgnore *.woff *.eot
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yoursite\.com/.* [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(woff|eot) [NC]
RewriteRule .*\.(woff|eot)$ http://yoursite.com/ [NC,F,L]
Прямая загрузка приводит к 403, но к файлам все равно можно получить доступ через свой собственный CSS-сайт.
Ответ 5
Это смешанная цель - защитить файл от копирования, давая каждому копию файла. Ответ на витую грушу, вероятно, является лучшим с точки зрения поиска середины.
Если вы хотите защитить файл, тогда визуализируйте текст в изображения на сервере.
Юридически вы можете вызывать DMCA на сайтах, на которых размещен ваш файл шрифта.