2011-07-14 17 views
5

Sunucumda barındırılan bazı jQuery eklentileri var, ancak sadece ziyaretçilere sunulmasını istiyorum. Diğer web siteleri parazit edip sadece js dosyalarına bağlayabilir ve bant genişliğimi çalabilir. Bu sorunu nasıl çözdünüz?Diğer sitelerin javascript dosyalarına bağlanmasını nasıl engelleyebilirim?

+1

Neden sitenize bağlantı vermek zorundalar? Sitenizi görüntülerken çok iyi indirebilir ve doğru kullanabilirler? – Balanivash

+1

Eklentilerinizi kullanacak olsaydım, javascript dosyasını daha iyi indiririm (eğer bana izin verirse) kim bilir - dosyalarınızı yeniden adlandırabilir, işlevselliği değiştirebilir veya sitemi bozacak başka şeyler yapabilirsiniz. –

+1

Birisi bant genişliğinizden bazılarını yiyebilir; Ancak, javascript'inize bağlanmak, trafiğinizi çalmalarını sağlamayacaktır. Aslında, eğer javascript'inizi doğru yaparsanız, trafiğini çalabilirsiniz! – evan

cevap

1

her zaman rotaya kendisine tüm istekleri .htacces kullanan bir PHP dosyası üzerinden javascript çalıştırabilir. Kullanıcı aracı web sitenizden farklıysa, 403 gönderebilir, aksi halde dosyayı geri yüklemek için bir file_get_contents kullanabilir.

yararlı htaccess şablon yardımcı

umut: CheckSpelling Seçenekler -Indexes Seçenek + FollowSymlinks

DirectoryIndex index.php 

RewriteEngine on 
RewriteBase /js/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ /js/index.php?p=$1 [L] 
+0

Neden .htaccess'i daha fazla iş yapması gereken bir php dosyasına göndermek ve neden betiğinizi kullanmasını engelleyen bir dosyaya göndermek için kullanırsınız? –

+0

dunno, bunu düşünmedim. ama kullanıyorum çünkü içine javascript dosyası yükleyebilirim, sonra php dosyası onu küçültür ve paketler. Ayrıca, aynı dosyanın iki kez veya tek bir örnek olarak yüklenmesini önlemek için bir izleyici vardır. – topherg

4

Cretae apache veya IIS için site klasörün kök bir .htaccess (ile ISAPI_Rewrite)

mysite.com alan adınızı, alanınızın tümünü değiştirerek değiştirin. RewriteCond önce ters bölü işareti ve bant genişliği çalmak

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule .*\. (js|json)$ http://mysite.com/theif.txt 

orada çalışırken onları göndermek ve aşağıda kodla sitenize theif.txt eklemek istediğiniz bir sayfa ile değiştirin edilecek olan (herhangi bir site çalmaya çalışan kodunuzu

top.location = "http://www.yourhtmlsource.com/sitemanagement/bandwidththeft.html";

yakında Sen javascript dosyaları d kullanarak bunları önlemek mümkün olabilir

3

orada sayfasından komut bağlantısı kalkar lol http://www.yourhtmlsource.com/sitemanagement/bandwidththeft.html tüm orada kullanıcıları gönderecek

  • bir php dosyası tarafından javascript dosyaları kullanın: irectly ancak dosya kopyalama engellemek ve elle bunları kullanmak için garantili bir yolu zaten birkaç yanıtları görmek Bunu denemek isteyebilirsiniz olabilir, orada

    yukarıdaki örnekte
    header("content-type: text/javascript"); 
    if(isset($_GET["name"]) && strpos("yourdomain.com", $_SERVER['HTTP_REFERER'])) 
        echo(file_get_contents("hidden_path_to_js/".$_GET["js_name"]."js")); 
    else 
        die("access denied"); 
    

size js kullanarak dosya böylece adresi, web sitesi ya da değil bakın olmadığını kontrol edecek

<script src="get_js_file.php?js_name=jquery"></script> 
+0

Bu önbelleğe alma işi var mı? – webnat0

+0

@ Webnat0 Birkaç başlık ekleyerek önbelleğe alabileceğinizi düşünüyorum: başlık ("Önbellek Denetimi: no-cache, must-revalidate"); header ("Bitiş: Cts, 26 Tem 2011 05:00:00 GMT"); –

+0

sadece Expires şey yerine koyduğunda 'date() 'fonksiyonunu kullanmak için tam zaman ve tarih yazmak için daha fazla düşünmek istediğim @Pezhvak IMV düşünüyordu –

İlgili konular