2011-06-29 2 views
12

J'ai un client qui souhaite héberger ses polices Web sur son propre serveur. J'ai un compte font.com où la police a été hébergée jusqu'à maintenant. Je suis allé la vérité le fonts.com agreement (Point 18.) Où ils disent, que vous pouvez héberger des fichiers sur votre propre serveur, mais vous devez les protéger aussi bien que possible.Comment protéger les polices Web

La seule façon dont je peux penser à le faire, est en limitant les demandes sur ces fichiers avec HTTP_REFERER dans le .htaccess. Puis-je en faire plus pour protéger ces polices? Est-ce que cela a du sens de faire plus et pensez-vous que c'est une protection suffisante? Je ne crois pas en la protection de la copie technique, vous pouvez toujours copier ce que vous pouvez voir d'une manière ou d'une autre. Mais je ne veux pas que mon client connaisse des problèmes légaux. Avez-vous une expérience avec cela?

modifier

Je suis intéressé par l'aspect légal. Que peut-il arriver, si quelqu'un peut télécharger la police et la réutiliser? Est-ce qu'ils signifient que je dois protéger la police seulement de hot-linking ou de télécharger aussi bien?

+4

Je vote pour clore cette question hors-sujet parce qu'il s'agit de conseils juridiques et non de conseils en matière de programmation. – durron597

+0

@ durron597 4 ans après sa création, quel que soit: D L'aspect légal n'est que la question bonus. En réalité c'est sur le côté technique. Que puis-je faire pour que cela soit plus clair? – meo

Répondre

3

Vous trouverez des méthodes intéressantes dans l'article de Typekit: "Serving and Protecting Fonts on the Web"

Ils utilisent des méthodes telles que la vérification HTTP Referrer, l'encodage base64, segmentation. Cependant, aucun d'entre eux n'offre une protection complète et on est d'accord avec cette affirmation de l'article:

Le fait est que, pour que quelque chose apparaisse dans un navigateur, il doit être sur le web. Si c'est sur le Web, il ne peut pas être complètement protégé ... Nous avons mis quelques obstacles de notre côté. Notre intention est seulement de décourager les abus occasionnels et de préciser que la prise de polices de Typekit est un acte explicite et intentionnel.

La deuxième chose à porter est que le titulaire de licence ne peut toujours pas tenir compte de l'accord, et c'est pourquoi des entreprises comme Adobe qui produit un des plus excellentes polices précise les conditions d'utilisation, y compris pour le web en Font licensing page.

Voir également le Font Licensing Issues décrit dans la spécification des polices Web W3 CSS3.

14

HTTP_REFERER et USER_AGENT peuvent facilement être usurpés. Cela étant dit, si vous voulez éviter les liens chauds, alors HTTP_REFERER est un bon début pour le restreindre aux appels de votre propre application.

Avec Apache mode_security

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

Ajouter ci-dessus dans le répertoire avec les polices rejette toutes les demandes non conformes provenant d'autres sites. Pour une sécurité supplémentaire, lorsque quelqu'un utilise votre application, vous lui donnez une session sur le serveur (par exemple PHP), et vous y stockez un 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>'; 
?> 

Et cela sert la police.

<?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 
?> 

Ensuite, vous faites référence à une page dynamique pour votre police (par exemple getFont.php? UniqueId = foo), et vous revenez que le fichier de police si le unqiueId correspond à leur session, sinon vous assumez qu'il est un usurpée lien chaud du referer. Cela revient essentiellement à placer le fichier dans un répertoire utilisateur authentifié uniquement, mais cela ne fonctionnerait que si les utilisateurs s'étaient connectés, alors que la méthode ci-dessus nécessite simplement que l'utilisateur charge la page avant de charger la police, pour éviter les liens chauds .

+0

cela ne répond pas à ma question. Je veux savoir ce qui peut être fait. – meo

+0

Vous avez demandé si cette approche avait du sens, j'ai accepté. L'utilisation d'un module comme * mod_security * et l'application d'un filtre comme 'SecFilterSelective' HTTP_REFERER ""^[^ \?] * Mydomain \ .com "'au répertoire contenant les polices rejetteront toutes les demandes non conformes d'autres sites. –

+0

ouais mais vous parlez d'un bon début, alors quoi de plus? :) – meo

0

C'est un objectif mixte - protéger le fichier de la copie tout en donnant à chacun une copie du fichier. La réponse de Twisted Pear est probablement la meilleure en termes de trouver un terrain d'entente.

Si vous souhaitez protéger le fichier, restituez le texte dans les images sur le serveur.

Légalement, vous pouvez invoquer DMCA sur les sites hébergeant votre fichier de police.

+0

la seule chose que je veux, est de respecter l'accord de font.com, sans utiliser d'images ... quel serait l'intérêt d'utiliser les polices web alors ... – meo

4

Voir https://bugzilla.mozilla.org/show_bug.cgi?id=540859

Apparemment approuvé par FontShop (dernier commentaire) et suggéré par MyFonts (http://twitter.com/#!/MyFonts/status/98767132321521664).

EDIT: Je pense que c'est la solution mentionnée dans comment 26:

RewriteCond "%{HTTP_HOST}_%{HTTP_REFERER}" "!\.?([^\.]+\.[^\.]+?)_https?://.*\1/.*$" 
RewriteRule \.(woff|eot)$ - [F,NC,L] 
+0

c'est un peu difficile de trouver quel est le bon post. Si vous pouvez ajouter la citation qui est pertinente à votre réponse, vous obtenez au moins mon +1 et peut-être la bonne réponse. – meo

2

pas un expert sur Apache, mais nous avons utilisé cela, et il semble fonctionner assez bien:

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] 

Téléchargement direct conduit à 403, mais les fichiers peuvent encore être accessible via le CSS de votre propre site.