2011-06-29 14 views
12

मेरे पास एक ग्राहक है जो अपने वेबफोंट को अपने सर्वर पर होस्ट करना चाहता है। मेरे पास एक font.com खाता है जहां फ़ॉन्ट अब तक होस्ट किया गया था। मैं सच्चाई fonts.com agreement (प्वाइंट 18.) कहां गया, जहां वे कहते हैं कि आप अपने सर्वर पर फाइलों को होस्ट कर सकते हैं, लेकिन आपको उन्हें यथासंभव अच्छे से सुरक्षित रखना होगा।वेबफोंट की रक्षा कैसे करें

ऐसा करने का एकमात्र तरीका मैं कर सकता हूं, .htaccess में उन फ़ाइलों पर अनुरोधों को प्रतिबंधित करके है।

क्या मैं उन फ़ॉन्ट्स की सुरक्षा के लिए और अधिक कर सकता हूं? क्या यह और अधिक करने के लिए कोई समझ में आता है और क्या आपको लगता है कि यह पर्याप्त सुरक्षा है?

मैं व्यक्तिगत रूप से तकनीकी प्रति सुरक्षा में विश्वास नहीं करता हूं, आप हमेशा किसी भी तरह से जो भी देख सकते हैं उसकी प्रतिलिपि बना सकते हैं। लेकिन मैं नहीं चाहता कि मेरे ग्राहक को कानूनी परेशानी हो। क्या आपके पास इसका कोई अनुभव है?

संपादित

मैं भी कानूनी पहलू में दिलचस्पी रखता हूँ। क्या हो सकता है, अगर कोई फ़ॉन्ट डाउनलोड कर सकता है और इसका पुन: उपयोग कर सकता है? क्या उनका मतलब है कि मुझे केवल हॉट-लिंकिंग या डाउनलोड करने से फ़ॉन्ट की रक्षा करनी है?

+4

मैं इस सवाल को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह कानूनी सलाह है, प्रोग्रामिंग सलाह नहीं। – durron597

+0

@ durron597 इसके निर्माण के 4 साल बाद, जो भी हो: डी कानूनी पहलू केवल बोनस प्रश्न है। वास्तव में तकनीकी पक्ष के बारे में। इसे और स्पष्ट करने के लिए मैं क्या कर सकता हूं? – meo

उत्तर

3

आप बहुत बढ़िया द्वारा लेख में कुछ रोचक तरीकों मिलेगा: "Serving and Protecting Fonts on the Web"

वे HTTP संदर्भ की तरह तरीकों की जाँच का उपयोग करें, बेस 64 एन्कोडिंग, विभाजन। इनमें से हालांकि कोई भी पूरा संरक्षण प्रदान करते हैं और एक लेख से इस बयान से सहमत हैं:

तथ्य है, कुछ एक ब्राउज़र में प्रदर्शित करने के लिए, यह वेब पर हो गया है। यदि यह वेब पर है, तो इसे पूरी तरह संरक्षित नहीं किया जा सकता है .... हमने अपने आप में कुछ बाधाएं डाली हैं। हमारा इरादा केवल आकस्मिक दुरुपयोग को हतोत्साहित करना और यह स्पष्ट करना है कि टाइपकिट से फोंट लेना एक स्पष्ट और जानबूझकर कार्य है।

सहन करने के लिए दूसरी बात यह है कि लाइसेंसधारी हमेशा समझौते उपेक्षा कर सकते हैं है, और यही वजह है की तरह एडोब जिन कंपनियों के एक सबसे उत्कृष्ट फोंट का उत्पादन Font licensing page में वेब के लिए सहित राज्यों उपयोग की शर्तों।

W3 CSS3 वेबफोंट spec में Font Licensing Issues पर भी चर्चा की गई।

14

HTTP_REFERER और USER_AGENT को आसानी से धोखा दिया जा सकता है। ऐसा कहा जा रहा है, अगर आप गर्म लिंकिंग को रोकना चाहते हैं, तो HTTP_REFERER इसे अपने स्वयं के एप्लिकेशन से कॉल करने के लिए प्रतिबंधित करना एक अच्छी शुरुआत है।

अपाचे 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 उनके सत्र से मेल खाता है तो आप केवल फ़ॉन्ट फ़ाइल वापसी, अन्यथा आप को लगता है यह एक जाली है रेफरर हॉट लिंक। यह अनिवार्य रूप से एक प्रमाणीकृत उपयोगकर्ता केवल निर्देशिका में फ़ाइल को रखने जैसा ही है, लेकिन यह केवल तभी काम करेगा जब उपयोगकर्ता लॉग इन करते थे, जबकि उपरोक्त विधि को उपयोगकर्ता को हॉट लिंक को रोकने के लिए फ़ॉन्ट लोड करने से पहले पेज लोड करने की आवश्यकता होती है ।

+0

यह मेरे प्रश्न का उत्तर नहीं दे रहा है। मैं जानना चाहता हूं कि क्या किया जा सकता है। – meo

+0

आपने पूछा कि क्या यह दृष्टिकोण समझ में आता है, मैं सहमत हूं। * Mod_security * जैसे मॉड्यूल का उपयोग करना और फोंट के साथ निर्देशिका में 'SecFilterSlective "HTTP_REFERER" "^^^? * * Mydomain \ .com" जैसे फ़िल्टर को लागू करना अन्य साइटों से सभी गैर-अनुपालन अनुरोधों को अस्वीकार कर देगा। –

+0

हाँ लेकिन आप एक अच्छी शुरुआत के बारे में बात करते हैं, तो अगला क्या है? :) – meo

0

यह एक मिश्रित लक्ष्य है - फ़ाइल को प्रतिलिपि बनाने से फ़ाइल को प्रतिलिपि बनाने से फ़ाइल की प्रतिलिपि बनाएँ। मध्यम जमीन खोजने के मामले में ट्विस्टेड पियर का जवाब शायद सबसे अच्छा है।

यदि आप फ़ाइल की रक्षा करना चाहते हैं तो सर्वर पर छवियों में टेक्स्ट प्रस्तुत करें।

कानूनी रूप से आप उन साइटों के खिलाफ डीएमसीए का आह्वान कर सकते हैं जो आपकी फ़ॉन्ट फ़ाइल होस्ट करते हैं।

+0

एकमात्र चीज जो मैं चाहता हूं, फ़ॉन्ट्स समझौते का सम्मान करने के बिना, छवियों का उपयोग किए बिना ... वेब-फोंट का उपयोग करने में रुचि क्या होगी ... – 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

नहीं अपाचे पर एक विशेषज्ञ, लेकिन हम इस प्रयोग किया जाता है, और यह काफी अच्छी तरह से काम करने के लिए लगता है:

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 की ओर जाता है, लेकिन फ़ाइलों को अभी भी अपनी खुद की साइट के सीएसएस के माध्यम से पहुँचा जा सकता है।

संबंधित मुद्दे