Sıkça Sorulan Sorular
Genel Sorular
JavaScript obfuscation ve nasıl çalıştığı hakkında sık sorulan sorular.
Kodunuzu korumak için pek çok neden var: birinin çalışmanızı basitçe kopyalamasını engellemek (özellikle HTML5 oyunları gibi istemci tarafı projelerde önemlidir), kodun anlaşılmasını ve değiştirilmesini zorlaştırmak ve henüz ödemesi yapılmamış çalışmaları koruyarak müşterilere kaynak kodu teslim etmeden çalışan bir derleme gösterebilmek.
Standart obfuscation, JavaScript kodunuzu okunması daha zor bir JavaScript'e yeniden yazar: adlar değiştirilir, stringler taşınır ve kodlanır, kontrol akışı yeniden yapılandırılır; ancak sonuç yine de bir hata ayıklayıcının adım adım izleyebileceği JavaScript'tir. VM (Sanal Makine) obfuscation ise fonksiyonlarınızın gövdelerini özel bayt koduna derler ve onu çalıştıran gömülü bir yorumlayıcıyla birlikte dağıtır; böylece korunan mantık artık JavaScript olarak var olmaz. Hangi fonksiyonların kapsandığı ve bunların nasıl seçileceği için VM Obfuscation sayfasına bakın.
Evet. vmTargetFunctionsMode değerini comment yapın, ardından korunacak her fonksiyonu /* javascript-obfuscator:vm */ ile işaretleyin. Bu yorumları obfuscation öncesinde çalışan her derleme adımında koruyun. Bkz. Belirli Fonksiyonları Hedefleme.
Hayır. API anahtarları, gizli bilgiler ve kimlik bilgileri ön yüz kodunda ASLA saklanmamalıdır. En yüksek obfuscation seviyesinde bile, ön yüz JavaScript kodundaki her veri kararlı bir saldırgan tarafından çıkarılabilir. Obfuscation tersine mühendisliği zorlaştırır, ancak şifreleme değildir ve gizli bilgilerin güvenliği için ona güvenilmemelidir. Bunun yerine gizli bilgileri arka uç sunucunuzda saklayın, sunucu tarafında ortam değişkenleri kullanın, anahtarları gizlemek için API çağrılarını arka ucunuz üzerinden yönlendirin veya sunucunuzun ürettiği kısa ömürlü token'lar kullanın.
Obfuscation, analizi ister bir insan, ister bir araç, ister bir yapay zekâ asistanı yapsın, kodu anlamayı ve değiştirmeyi zorlaştırır; tersine mühendisliğin imkânsız olduğunu garanti etmez. Saldırganın kontrol ettiği ortamda çalışma zamanı gözlemlenebilir. Sırları ve nihai güvenlik kararlarını sunucuda tutun. VM Kodu Nasıl Dönüştürür.
Önce çalışma zamanı savunmalarını eleyin. VM Self Defending ve VM Debug Protection; otomasyon araçları, headless tarayıcılar ve hata ayıklayıcılar altında ve target gerçek çalışma ortamıyla eşleşmediğinde çalışmayı bilerek bozar. Bu yüzden işlevsel testleri bunların kapalı olduğu ayrı bir test derlemesinde çalıştırın. O derleme de bozuluyorsa sorunu vmTargetFunctionsMode: 'comment' ile her seferinde bir fonksiyonu sanallaştırarak daraltın. Sorun giderme kılavuzu her adımı ve bir hata raporuna nelerin eklenmesi gerektiğini anlatır.
Obfuscator kod ekler: tanımlayıcılar üretilmiş adlar alır, stringler erişim fonksiyonlarıyla birlikte bir string dizisine (isteğe bağlı olarak kodlanmış) taşınır ve VM obfuscation kullanıldığında bayt kodunuzla birlikte eksiksiz bir sanal makine yorumlayıcısı da pakete dahil edilir. Boyut konusunda fazla endişelenmeyin - obfuscate edilmiş kod, çoğu sunucunun varsayılan olarak etkinleştirdiği gzip veya Brotli ile iyi sıkışır.
Daha ağır ön ayarlar çıktı boyutunu ve çalışma süresini artırabilir. Sabit yavaşlama katsayıları yerine kendi başlangıç sürenizi, sık çalışan kod yollarınızı ve sıkıştırılmış paket boyutunu ölçün. Seçenekler Referansı · En İyi Uygulamalar
Hayır. Çıktıyı yeniden yazmak onu bozabilir; özellikle koddaki değişiklikleri tespit eden Self Defending veya VM Self Defending kullanıyorsanız. Obfuscation öncesinde bir minifier çalıştırabilirsiniz; yeter ki /* javascript-obfuscator:vm */ gibi javascript-obfuscator yorumlarını korusun.
Kaynak kodunuzu saklamayız. JavaScript'in temel obfuscation işlemi tarayıcınızda çalışır. VM ve HTML obfuscation kaynağı sunucularımıza gönderir; sunucular onu işler ve atar. Bir istek 4.4 MB'tan büyük olduğunda Team ve Business planları onu işlemden sonra silinen geçici bir depolamaya yükler. Kötüye kullanımla mücadele ve kullanım analizi için her obfuscate edilmiş çıktının SHA-256 özetini ve kullanılan bazı ayarları (ön ayar, hedef ve VM korumaları gibi) üç ay boyunca saklarız; kodun kendisini ya da ondan herhangi bir içeriği asla saklamayız. Panel geçmişi yalnızca tarayıcınızda saklanır; Geçmiş bölümünden yönetin.
Hayır. Obfuscator özgün adlarınızı, yorumlarınızı veya biçimlendirmenizi saklamaz; bu nedenle çıktı kaynak kodunuza geri dönüştürülemez. Bu bir güvenlik garantisi değildir (yukarıdaki deobfuscation sorusuna bakın), ancak orijinali güvende tutmanız gerektiği anlamına gelir.
Evet. Çıktıyı Node.js ortamları için optimize etmek üzere obfuscation seçeneklerinde hedef olarak "Node" değerini seçebilirsiniz.
ES2015+ sözdizimi, async/await, optional chaining ve özel sınıf alanları desteklenir; yeni sözdizimini seçtiğiniz obfuscator sürümünde test edin. Obfuscation öncesinde TypeScript ve JSX kodunu derleyin ve uygulamanızı paketleyin - bkz. Çalışma Ortamı Uyumluluğu. HTML dosyaları parseHtml ile desteklenir; bkz. HTML Dosyalarını Obfuscate Etme.
Obfuscate edilmiş çıktı - VM yorumlayıcısı ve Self Defending katmanı dahil - sürekli güncellenen masaüstü tarayıcılarda ve iOS 16+ sürümlerinde (yaklaşık son 4 yıl) aktif olarak desteklenir ve test edilir. Daha eski tarayıcılar, ES2015 modül desteği alt sınırına kadar elden geldiğince desteklenir; bunun altındaki her şey, Internet Explorer dahil, kapsam dışıdır.
VM koruması için fiyatlandırma planlarımıza göz atın veya standart obfuscation için ücretsiz çevrimiçi deneme alanını deneyin. Eksiksiz bir anlatım için başlangıç kılavuzunu okuyun.
Fiyatlandırma ve Hesap
Planlar, faturalandırma ve kullanım limitleri hakkında sorular.
Kullanım, girdi kaynak kodunuzun bayt cinsinden boyutuna göre ölçülür. Kaynakların adil dağıtılması için her obfuscation işlemi en az 0,1 MB (102.400 bayt) olarak hesaplanır. Örneğin 50 KB boyutunda bir dosyayı obfuscate ederseniz, kotanızdan 0,1 MB düşülür. 0,1 MB üzerindeki dosyalar gerçek boyutlarıyla hesaplanır.
VM obfuscation limitinize ulaştığınızda, standart (tarayıcı tabanlı) obfuscation işlemini limitsiz ve ücretsiz olarak kullanmaya devam edebilirsiniz. Ücretli planlarda VM kotanız, yıllık planlar dahil, her ay aboneliğinizin başladığı günün aylık yıl dönümünde sıfırlanır. Free planın ise sıfırlanmayan bir ömür boyu limiti vardır. Günlük VM limiti olan planlarda bu limite ulaşıldığında ertesi gün yeniden VM ile obfuscation yapılabilir. Daha fazla VM obfuscation kotası için planınızı istediğiniz zaman yükseltebilirsiniz.
Evet, planınızı istediğiniz zaman yükseltebilir veya düşürebilirsiniz. Yükseltirken, faturalandırma döneminizin kalan kısmı için orantılı bir tutar tahsil edilir. Düşürürken ise yeni fiyat bir sonraki faturalandırma döneminizden itibaren geçerli olur.
Aboneliğinizi istediğiniz zaman iptal edebilirsiniz. Mevcut faturalandırma döneminizin sonuna kadar planınıza erişiminiz devam eder. Kısmi faturalandırma dönemleri veya kullanılmayan süre için geri ödeme yapmadığımızı lütfen unutmayın.
Güvenli ödeme sağlayıcımız Stripe üzerinden tüm yaygın kredi kartlarını (Visa, Mastercard, American Express) ve banka kartlarını kabul ediyoruz. Tüm işlemler şifrelenir ve PCI uyumludur.
