अवधारणा सरल है: एक टोकन बनाएं जिसका उपयोग उन फ़ाइलों में किया जाएगा जिन्हें आप संरक्षित करना चाहते हैं। यह यह टोकन ("abc123" की तरह कुंजी - सत्र में सहेजा गया, कुकीज़ नहीं) आपके द्वारा लोड की जाने वाली प्रत्येक फ़ाइल में उपयोग किया जाएगा। इस तरह, यदि टोकन फ़ाइल से मेल नहीं खाता है तो आप किसी पृष्ठ पर रीडायरेक्ट नहीं कर सकते हैं या अस्वीकार नहीं किया जा सकता है।
सेटअप index.php
में टोकन:
<?php
session_start();
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 10 Oct 2005 05:00:00 GMT");
$_SESSION['siteToken'] = "abc123";
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style.css" />
</head>
<body>
अब CSS और JavaScript फ़ाइलों के लिए आप यकीन है कि यह सेट बनाने के लिए टोकन जांच करने की आवश्यकता है और यह सही मूल्य है।
// style.css
<?php
session_start();
header("Content-type: text/css");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 10 Oct 2005 05:00:00 GMT");
if($_SESSION["siteToken"] != "abc123") {
session_regenerate_id();
die(); // or redirect
}
?>
body { background-color: #000; color: #fff; }
etc...
आप जावास्क्रिप्ट फ़ाइल के लिए एक ही काम करते हैं।
अगले कदम के लिए यदि आप यह सुनिश्चित कर लें अपनी .htaccess अद्यतन CSS और JavaScript फ़ाइल ठीक प्रकार से पार्स कर रहे हैं:
RewriteEngine on
RewriteBase/
RewriteRule style.css style.php [NC,L]
इसके अलावा आप फ़ाइलों को क्वेरी करने से बुरा बॉट की रक्षा के लिए अपनी .htaccess में इस जोड़ सकते हैं में:
SetEnvIfNoCase User-Agent "^Wget" bad_bot
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot
SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot
SetEnvIfNoCase User-Agent "^libwww-perl" bad_bot
#etc...
Deny from env=bad_bot
अब छवियों के लिए। यह समाधान भी काम करेगा लेकिन यह सीएसएस और जावास्क्रिप्ट फ़ाइलों को पार्स करने से धीमा होगा। तर्क समान है लेकिन प्रतिध्वनि के बजाय आपको फ़ाइल को पढ़ना होगा (readfile
का उपयोग करना)। इसके अलावा, आपको फ़ाइल के विस्तार के आधार पर शीर्षलेख बदलना होगा।
इस के लिए वैकल्पिक अपनी .htacces फ़ाइल में इस सेट करने के लिए किया जाएगा:
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.jpg$ - [NC,F,L]
हालांकि, इस बुलेटप्रूफ नहीं है।
बहुत रोचक धन्यवाद, मैं छवि का उपयोग करने की कोशिश करूंगा और यदि मुझे कोई प्रदर्शन समस्या दिखाई दे तो मैं रिवाइटरूल का उपयोग करूंगा। आपका बहुत बहुत धन्यवाद! – Tech4Wilco
आपका बहुत स्वागत है –