Прежде всего: добро пожаловать в Интернет, вы не можете запретить людям использовать данные, которые вы им отправляете. Либо вы не отправляете им данные, либо принимаете тот факт, что как только данные окажутся на их компьютере, они могут делать с ними все, что захотят (если вы хотите, чтобы люди могли подключаться к вашему контенту через браузер, браузер необходимо загрузить и декодировать содержимое, что означает, что вы не можете остановить распространение, и фактически вы являетесь распространителем в этом сценарии).
Даже если вы привязываете загрузку шрифта к идентификатору сеанса (например, ваш пользователь должен сначала нажать на URL-адрес страницы, который устанавливает значение файла cookie, которое затем проверяется, когда они пытаются загрузить веб-шрифт в сочетании с IP-адресом, для которого был файл cookie установлен изначально) им нужно всего лишь загрузить ваш шрифт один раз, чтобы получить к нему доступ и делать с ним то, что они хотят. Он либо будет находиться в каталоге кеша их браузера, либо будет доступен через JavaScript (например, путем майнинга document.stylesheets
), что означает, что он тривиально преобразуется в реальные данные и сохраняется на диск (например, window.open с двоичным типом mime заставляет браузеры всплывать диалоговое окно сохранения в файл).
Там я только что загрузил ваши шрифты, несмотря на все ваши усилия: если вы можете отправить мне данные, а технология, которую мы выбрали для этого обмена, — HTTP(S), я смогу получить доступ к этим данным, независимо от того, сколько вы дополнительно ограничить как или когда я могу получить эти данные. Мне просто нужно получить его один раз.
Итак: не сосредотачивайте свои усилия на том, как и когда. Примите тот факт, что ваши пользователи будут иметь доступ к вашему шрифту (шрифтам), пусть даже только один раз, и вместо этого сосредоточьте свои усилия на том, что они смогут делать с вашим шрифтом (шрифтами), когда они это сделают, потому что это гораздо важнее. Есть несколько вещей, которые вы можете сделать, чтобы убедиться, что то, что вы распространяете, в основном бесполезно вне вашего контента. Например:
- Не используйте полные шрифты, используйте подмножества, чтобы ваши пользователи получали только частичные шрифты, содержащие строго те глифы, которые необходимы для рендеринга вашего собственного контента. Это сильно ограничивает возможности других. Вы можете зайти так далеко, как вам нравится, предоставляя выделенные подмножества шрифтов для каждой страницы или даже для каждого раздела страницы.
- Установите флаг
fsType
для вашего шрифта(ов), чтобы запретить установку. Таким образом, люди получат ваши шрифты, но не смогут использовать их в дальнейшем, кроме как в Интернете.
- Обязательно правильно пометьте лицензию на шрифт(ы) в самом шрифте, чтобы, если люди действительно используют ваши шрифты, вы могли обратиться в суд и подать на них в суд за обход вашей лицензии за пределами «личного использования». контекст.
Однако, если вы также хотите воспользоваться кэшированием, вы не хотите делать (1), а (2) и (3) достаточно, чтобы дать вам законное основание преследовать людей, которые используют ваш шрифт (шрифты). .
Итог: не позволять пользователям «получать» ваши данные — пустая трата времени. Это Интернет, ваши пользователи получают ваши данные, и это полностью точка технологии. Вместо этого сосредоточьтесь на том, чтобы убедиться, что то, что они получают, полезно только в контексте вашего контента.
В конце концов, если TypeKit может это сделать, то и вы сможете. (Что было бы дополнительной рекомендацией: не сворачивайте свое собственное решение, если вы можете использовать установленное существующее решение. Доступны ли шрифты через Typekit или тому подобное? Вместо этого используйте их и избавьте себя от необходимости заново изобретать колесо)
person
Mike 'Pomax' Kamermans
schedule
07.04.2015