2011-06-29 23 views
12

自分のWebフォントを自分のサーバーにホストしたいクライアントがあります。私はフォントが今までホストされていたfont.comアカウントを持っています。私は真実fonts.com agreement(ポイント18.)彼らはあなた自身のサーバー上のファイルをホストすることができますが、彼らはできるだけ良いものとしてそれらを保護する必要があると言う。Webフォントを保護する方法

私が考えることができる唯一の方法は、HTTP_REFERERのファイルでの要求を.htaccessに制限することです。

これらのフォントを保護するために他に何かできますか?より多くのことを作ることは意味をなさないか、それが十分な保護であると思いますか?

私は個人的に技術的なコピー防止を信じていませんが、何とか見えるものはいつでもコピーできます。しかし私はクライアントが法的な問題に陥るのを望まない。あなたはこれについて何か経験がありますか?

編集

私も法的な側面に興味があります。誰かがフォントをダウンロードして再利用できる場合はどうなりますか?彼らは私がホットリンクやダウンロードだけからフォントを保護しなければならないという意味ですか?

+4

私は、このアドバイスは法的アドバイスであり、プログラミングのアドバイスではないので、トピックとしてオフに投票しています。 – durron597

+0

@ durron597作成後4年、何でも:D法的な面はボーナス問題に過ぎません。現実には、技術的側面についてです。これをもっと明確にするために私は何ができますか? – meo

答えて

3

あなたはtypekitの記事では、いくつかの興味深い方法があります:"Serving and Protecting Fonts on the Web"

彼らがHTTPリファラーチェック、base64エンコードのようなメソッドを使用して、セグメント化。しかし、これらのどれも完全な保護を提供せず、記事のこのステートメントに同意したものはありません。

実際には、ブラウザに表示されるものはWeb上になければなりません。それがウェブ上にある場合、完全に保護することはできません。私たちはいくつかのハードルを設けました。私たちの意図は、カジュアルな誤用を防ぐことだけであり、Typekitのフォントを明示的かつ意図的に実行することを明確にしています。

負担する2つ目は、ライセンシーが常に合意を無視することができるということです、そして1が最も優れたフォントを作成するアドビのような企業がFont licensing pageでウェブを含め使用条件を述べた理由です。

また、W3 CSS3 Webフォント仕様で説明されているFont Licensing Issuesも参照してください。

14

HTTP_REFERERとUSER_AGENTは簡単になりすますことができます。つまり、ホットリンクを防止したい場合は、HTTP_REFERERを自分のアプリケーションからの呼び出しに制限することをお勧めします。

アパッチ mode_securityで

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

フォントのディレクトリに上記を追加し、他のサイトからのすべての非準拠の要求を拒否します。

さらにセキュリティを強化するために、誰かがあなたのアプリケーションを使用したときに、サーバー(PHPなど)でセッションを行い、そこで独自のIDを保存します。

<?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は彼らのセッションと一致した場合にのみ、フォントファイルを返し、そうでなければ、それが偽装されていると仮定リファラーホットリンク。これは本質的に認証されたユーザ専用のディレクトリにファイルを置くのと同じですが、ユーザがログインしていれば機能しますが、上記の方法ではフォントを読み込む前にページを読み込ませ、 。

+0

これは私の質問に答えていません。私は何ができるのか知りたい。 – meo

+0

あなたはこのアプローチが合理的かどうか尋ねました。私は同意しました。 * mod_security *のようなモジュールを使用し、 'SecFilterSelective "HTTP_REFERER" "^ [^ \?] * mydomain \ .com"のようなフィルタをフォントのあるディレクトリに適用すると、他のサイトからのすべての非適合要求が拒否されます。 –

+0

ええ、でもいいスタートについて話します。 :) – meo

0

すべての人にファイルのコピーを提供しながら、ファイルがコピーから保護されるということは、混在した目標です。ツイストペアの答えはおそらく中盤を見つけるという点では最高です。

ファイルを保護したい場合は、テキストをサーバー上のイメージにレンダリングします。

法的には、あなたのフォントファイルをホストするサイトに対してDMCAを呼び出すことができます。

+0

私が欲しいのは、画像を使わずにfont.com契約を尊重することです。ウェブフォントを使用することに興味があるのでしょうか... – meo

4

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

はどうやらFontShop(最後のコメント)によって承認され、MyFonts(http://twitter.com/#!/MyFonts/status/98767132321521664)によって提案を参照してください。

編集:私はそれがcomment 26で述べた解決策だと思う:

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

これは正しい投稿が何であるかを見つけるのは難しいです。あなたの答えに関連する見積もりを追加することができれば、あなたは少なくとも私の+1とおそらく正しい答えを得るでしょう。 – meo

2

ないの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を介してアクセスすることができます。

関連する問題