Подтвердить что ты не робот

Как защитить WebFonts

У меня есть клиент, который хочет разместить свои веб-сайты на своем собственном сервере. У меня есть учетная запись font.com, где шрифт был размещен до сих пор. Я пошла правду соглашение fonts.com (пункт 18.) Где они говорят, что вы можете размещать файлы на своем собственном сервере, но у вас есть чтобы защитить их как можно лучше.

Единственный способ, которым я могу это сделать, - это ограничить запросы на эти файлы с помощью HTTP_REFERER в .htaccess.

Могу ли я сделать больше для защиты этих шрифтов? Имеет ли смысл делать больше, и вы думаете, что это достаточная защита?

Я лично не верю в техническую защиту от копирования, вы всегда можете скопировать то, что вы можете увидеть как-то. Но я не хочу, чтобы мой клиент попал в юридическую проблему. У вас есть опыт?

изменить

Меня интересует и юридический аспект. Что может случиться, если кто-то может скачать шрифт и повторно использовать его? Они означают, что я должен защищать шрифт только от горячей ссылки или от загрузки?

4b9b3361

Ответ 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 на сайтах, на которых размещен ваш файл шрифта.