Yanıtlar:
Umursar mısın? Hayır.
Neden? Çünkü bu konuda gerçekten yapabileceğiniz hiçbir şey yok.
Bazıları tahmin edilebilir şekilde gizleme önerdi. Bu Java ve .Net için çalışır, ancak Python, Javascript ve Perl hepsi düz metindir, bu yüzden gerçekten yapabileceğiniz çok az şey vardır. Sitenizdeki değer şüphesiz sunucu tarafıdır, bu yüzden Javascript hakkında endişelenmeyin.
Yapabileceğiniz en iyi şey, başkalarının değiştirmekte zorlanabilmesi için kodu şaşırtmaktır. Tabii ki, orijinalin bir kopyasını saklıyorsunuz.
Bir bonus olarak, gizlenmiş kod daha küçük olmalı ve bu nedenle yüklenmesi daha hızlı olmalıdır.
Neden endişeleniyorsun? Bunun iki nedeni olabilir: 1) Ticari bir JavaScript kitaplığı yazıyorsunuz. Çözüm: Başka bir iş planı edinin, JavaScript kütüphaneleri ücretsiz olma eğilimindedir. Belki de işletmelerin küçük bir yerinde para kazanabilirsiniz, ancak büyük olasılıkla yasadışı kopyalanmış kodu kullanmayacaklardır.
2) Rakiplerinizin sitenizi kopyalayacağından endişe ediyorsunuz. Eğer yaparlarsa, onlardan her zaman bir adım önde olacağınızdan emin olabilirsiniz. Büyük olasılıkla, kendi kodlarını yazacaklar ve sitenizin görünümünü ve davranışını kopyalayacaklar ve aptal yazılım patentleri almak dışında hiçbir şey sizi kurtaramaz, örneğin amazon tek tıklamayla alışveriş.
IOW, endişelenme. İnsanlardan eşyalarınızı kullanıp kullanmadıklarını söylemelerini isteyen bir telif hakkı bildirimi koyun. Yeterli insan yaparsa, muhtemelen uzun vadede faydalı olacak, meraklılar arasında kredi almak için yararlı bir kütüphane oluşturduğunuz gerçeğini kullanın.
Hayır. İstemci tarafı bir komut dosyası yazma dilini "korumayı" denemeyin. Şaşkınlık işe yaramıyor. Küçültmenin faydaları vardır (ancak korsanlıkla mücadele bunlardan biri değildir )
Ben de tavsiye ederim karşı istek başına birkaç ekstra kilobayt dikkate değer bir farktır (ve sadece yapacağız gün, başına isabet binlerce almak sürece kodunuzu küçültmek olduğunu hepiniz sizi kurtaracak doğru kullandığınız görüntüleri sıkıştırmak kez çok daha fazla KB, kurulum düzgün önbellekleme vb.) ..
Javascript'i küçültüp küçümseseniz bile, insanlar yine de önemsiz bir şekilde kendi sitelerine kopyalayabilirler. Değiştirilmesi biraz daha zor olacak, ancak betiğin ne yaptığına bağlı olarak, bu önemli olmayabilir. Örneğin, bahsettiğimiz WMD Editörleri, kamu kullanımı için minimize edilmiştir.
Gizleme ve küçültme benzer olabilir, ancak kodu düzgün bir şekilde gizleyecek olsaydınız, anlaşılmasını zorlaştırmak için temelde büyük bölümlerini yeniden yazmanız gerekir. Bu, kodun daha karmaşık ve başa çıkmasını çok daha zorlaştırır ( siz), böylece hataları tanıtacaksınız .. Javascript'iniz buggy olursa, bu korsanlığı önleyecektir, çünkü kimse onu kullanmak (veya çalmak) istemeyecektir .. ama, err, bu iyi değil.
Javascript ile ilgili harika şeylerden biri, canlı, çalışma koduna bakarak herkesin sağ tıklayıp / görüntüleyebileceği ve Javascript'i öğrenebileceği .. Koda bakarak ve kopyalayan kişilerden endişe ediyorsanız, web / Javascript isn ' t doğru dil ..
Bilgileriniz (adınız, web siteniz) ve bir tür lisansla tüm .js
dosya ve <script>
bloklarınızın başına bir yorum koymanızı öneririm . Kodun ne olduğuna bağlı olarak, "Bir projede bu kodun tamamını veya bir kısmını kullanırsanız, lütfen bana bildirin!" "Bu kodu başka hiçbir amaçla kullanmayın!" ifadesinden çok daha etkili olabilir.
Bunu caydırmak için kodu gizleyebilir (veya en azından minimize edebilirsiniz) (zamana sahip biri için durdurulamaz olsa da. Örneğin, StackOverflow'un WMD düzenleyicisinin deobfüzyonu (ancak bu iyi bir nedendi!)).
Gerçekten önyüz koyduğunuz herhangi bir kod herkese açık olacak ve herkesin görebileceği / kullanabileceği.
Neden hiç endişelenmiyorsun? Senaryolarınız çalmaya değerse, onları açık kaynak yapabilir ve honlama konusunda yardım alabilirsiniz.
Her zaman kaynak kodu biçiminde sunulan, yorumlanmış bir dil olduğu için gerçekten yapamazsınız. Korsan yeterince motive edilirse şaşkınlık bile pek yardımcı olmaz.
(Vaka-Örnek: Jeff ve Dana'nın sadece iyi niyetleri olduğunu bilsem de - sıkıca konuşabilen - StackOverflow WMD Editör Korsanlık olarak görülebilir)
Kullandığım GWT (Google Web Toolkit) kodu tüm Java ile yazılmış ve debug ve Java merkezli araçları ile test edilebilir, ancak serbest bırakılması için JavaScript dönüştürülür olduğu web uygulamaları, yazmak için.
Modda PRETTY
veya DETAILED
modda değilken, GWT tarafından üretilen JavaScript çok yüksek düzeyde optimize edilmiş ve gizlenmiştir, bu da tersine mühendislik için son derece pratik değildir. (Geleneksel bir JavaScript gizleme aracı bu avantajların bir bölümünü sağlar - ancak optimizasyonların GWT'nin ayrıntılı dal budaması ve kod yolu analizi yapma yeteneğine bağlı olduğu yerlerde değil).
Bununla birlikte, genel olarak, şaşkınlık konusunda -1'im - yani, meşru müşterilerin, geliştirme becerileri ve FireBug'un bir kopyası olduğunda bile sorunlarını çözmenize daha az yardımcı olabileceği anlamına gelir. Orijinal yazarsınız - kodu herkesten daha iyi biliyorsunuz ve bu size ucuz bir nakavt yapmaya çalışan birine göre rekabet avantajı sağlıyor; ayrıca, eğer böyle bir rakip gerçekte izinsiz çaldıkları bir şeyden gerçek para kazanıyorsa, bu da onları bir davada alınan paraya (ya da potansiyel olarak toplamı üç katına çıkararak) açar; meşru ve ciddi rekabet o rotaya gitmeyecek ve neden diğer tür için endişeleniyorsunuz?
Web uygulamamız için çok fazla Javascript (ve çok sayıda sunucu tarafı) kodu kullanıyoruz ve Javascripts'in beyaz boşlukları, satır sonlarını vb. Kaldırmayı "gizlemeyi" seçtik - bu gerçekten kodunuzu korumaz, ancak okumayı ve anlamayı çok zorlaştırırsınız ve büyük olasılıkla başkaları bu çabadan dolayı rahatsız etmeyecektir.
Ancak bunu yapmamızın nedeni, kodumuzun bazı bölümlerini kimsenin kopyalamasını istemediğimizden ziyade, kodu sunduğumuz iş ortaklarımızın / müşterilerimizin doğrudan "dosyalarımızda" ( bir sonraki güncelleme yüklendiğinde sorunlardan kaçının) ...
Not: Gizlemenin bilmeniz gereken bir dezavantajı vardır: bu kod kodunda hata ayıklamanız gerekirse, kendiniz gizli bilgi ile çalışamazsınız, bu nedenle her zaman 'okunabilir' dosyayı önce sunucu.
Yeterince iyi bir javascriptin başkaları tarafından alınacağı varsayımına devam ederek, sadece akımla yüzmeye ve bundan en iyi şekilde yararlanmaya ne dersiniz?
Örneğin atıfta bulunulmasını gerektirirken kullanıma izin veren bir lisansı tokatlayın. Belki de gerekiyorsa, bazı Creative Commons varyantları gibi ticari olmayan bir maddeyle de.
Ticari sırlarınız varsa, kodun en hassas kısımlarını ActionScript'e (Flash) taşıyabilirsiniz. Temel olarak JavaScript ile aynı dildir ve tokenleştirilmiş biçimde saklanır.
Kodunuzu çalmaya kararlı hardcore korsanları hakkında endişeleniyorsanız, üzgünüm, yapabileceğiniz hiçbir şey yok. Ancak sıradan hırsızlar için sakıncalı hale getirmenin yolları var. Bunu yapmak için bir nispeten kolay yolu kullanarak bazı parçaları yüklemektir XMLHttpRequest
ve eval()
bunları; bu, JSON verilerini alan ve sayfayı doldurmak için kullanan bir şey olarak görünebilir (veya dahil edilebilir).