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ı kopyalayıp yapıştırarak almasını engellemek (özellikle HTML5 oyunları gibi istemci tarafı projelerde önemlidir), yorumları ve boşlukları kaldırarak kodun daha hızlı yüklenmesini ve anlaşılmasının zorlaşmasını sağlamak ve henüz ödemesi yapılmamış çalışmaları koruyarak müşterilere kaynak kodu vermeden gösterebilmek.
VM (Sanal Makine) obfuscation, JavaScript kodunuzu gömülü bir yorumlayıcıda çalışan özel bayt koduna dönüştürür. Hâlâ okunabilir JavaScript üreten standart obfuscation yönteminin aksine, VM obfuscation orijinal kod yapınızı tamamen gizler. Statik analiz araçları, önce sanal makinenin tamamını tersine mühendislikle çözmeden mantığı anlayamaz. Daha fazla bilgi için VM obfuscation kılavuzumuza göz atın.
Evet! VM obfuscation işlemini belirli fonksiyonlara veya metotlara seçerek uygulamanız için bir seçenek sunuyoruz. Hedef fonksiyonunuzu özel bir yorumla (/* javascript-obfuscator:vm */) işaretlemeniz yeterlidir; yalnızca o fonksiyon VM obfuscator üzerinden işlenir. Bu yaklaşım, kodunuzun geri kalanını standart obfuscation ile ya da hiç dokunmadan bırakarak yalnızca en hassas algoritmalarınızı korumak ve performans maliyetini en aza indirmek için idealdir.
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ü tokenlar kullanın.
Hiçbir obfuscation yöntemi %100 kusursuz değildir — JavaScript nihayetinde saldırganın kontrol ettiği bir ortamda, yani tarayıcıda veya Node.js üzerinde çalışır ve orada çalışma zamanı bellek incelemesi her zaman mümkündür. Hiçbir JavaScript obfuscation yöntemi bunu tamamen engelleyemez; yapabileceği şey, oraya ulaşmanın maliyetini yükseltmektir. VM ile obfuscate edilmiş kod için şu anda otomatik çevrimiçi deobfuscator hizmeti bulunmuyor — her obfuscation işlemi kodu, kendine özgü bir sanal makineye sahip özel bayt koduna derler ve bu da evrensel bir araç geliştirmeyi imkânsız kılar. Standart obfuscation çok daha kolay aşılır: çoğu zaman otomatik araçlar ve güzelleştiricilerle kısmen geri çevrilebilir. VM obfuscation ise sanal makinenin tamamen tersine mühendislikle çözülmesini, bayt kodunun şifresinin ve kodlamasının çözülmesini, komut kümesinin anlaşılmasını ve yürütmenin izlenmesini gerektirir — bu da haftalarca yoğun çaba isteyebilecek bir süreçtir. VM Self Defending olmadan, güçlü yapay zekâ ajanları (örneğin Claude Opus 4.7) bayt kodunu izleyip küçük kod tabanlarında orijinal kodu kabaca yeniden oluşturabilir. VM Self Defending etkinleştirildiğinde, katmanlı LLM karşıtı savunmalar — hook karşıtı önlemler, realm'ler arası bütünlük doğrulaması ve bayt kodu doğallık kontrolleri — bir ajanın bayt kodunu anlamlandırmak için başvurduğu dinamik teknikleri bozar: enstrümantasyon, hooking ve korumalı alanda yürütme. Dosyanın statik olarak okunması hâlâ mümkündür ancak yalnızca anlaşılmaz bayt kodu görünür; onu yorumlayan çalışma zamanını gözlemleme girişimlerinin her biri de bir bütünlük kontrolünü tetikler. Yalnızca dosyadan yola çıkarak yapay zekâ ile otomatik deobfuscation pratikte uygulanamaz hale gelir. Kodunuzu daha da sağlamlaştırmak için: hassas fonksiyonları bir IIFE içine sarın ki adları tamamen dönüştürülsün ve bayt kodu şifreleme gibi sıkılaştırma seçeneklerini etkinleştirin. VM kodu nasıl dönüştürür konusunda daha fazla bilgi edinin.
VM obfuscation karmaşık bir teknolojidir ve bazı uç durumlar tam olarak desteklenmiyor olabilir. Kodunuz VM obfuscation sonrasında bozuluyorsa, belirli fonksiyonları seçerek obfuscate etmek üzere vmTargetFunctionsMode: 'comment' kullanarak sorunu daraltabilirsiniz. Sorunlu kodu nasıl tespit edeceğinize ve sorunu nasıl bildireceğinize dair adım adım talimatlar için sorun giderme kılavuzumuza bakın.
Obfuscator, hata ayıklamaya ve tersine mühendisliğe karşı koruma sağlamak için yeni kod ekler. Stringler hexadecimal biçime çevrilir 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 ile son derece iyi sıkışır.
Her obfuscation yöntemi performansı bir miktar etkiler. Standart obfuscation çok az ek yük getirir. VM obfuscation ise çok daha fazla etki yaratır ve bu büyük ölçüde koda bağlıdır - örneğin özyineleme ağırlıklı, bayt koda çevrilmiş kod gözle görülür şekilde yavaşlar. Ortalama olarak low hazır ayarı yaklaşık 10 kat, Self Defending ve Debug Protection içeren LLM karşıtı hazır ayar ise yaklaşık 12 kat yavaşlama getirir. Dengeyi seçenekleri ayarlayarak veya VM obfuscation yöntemini yalnızca hassas kod bölümlerine uygulayarak ince ayarlayabilirsiniz. Optimizasyon ipuçları için en iyi uygulamalar kılavuzumuza bakın.
Hayır, bu önerilmez ve bazı durumlarda kodu bozar (özellikle self-defending seçeneğini etkinleştirdiyseniz). Ancak kodunuzu obfuscation öncesinde bir minifier üzerinden geçirebilirsiniz.
4.4 MB altındaki dosyalarda kaynak tamamen bellekte işlenir ve hemen obfuscate edilmiş çıktı olarak döndürülür. Daha büyük dosyaları (Team/Business planları) geçici olarak güvenli depolamaya yükler ve obfuscation tamamlanır tamamlanmaz sileriz. Ek bir güvence olarak, 5 dakikadan eski dosyaları kaldırmak üzere her 5 dakikada bir temizlik işi çalışır. Kodunuz asla saklanmaz.
Hayır, obfuscate edilmiş kodu orijinal kodunuza geri döndürmek mümkün değildir; bu nedenle orijinali güvende tutun.
Evet. Çıktıyı Node.js ortamları için optimize etmek üzere obfuscation seçeneklerinde hedef olarak "Node" değerini seçebilirsiniz.
ES2015 (ES6) sürümünü ve ES2022+ sözdizimi, özel sınıf alanları, async/await, isteğe bağlı zincirleme gibi tüm modern JavaScript özelliklerini destekliyoruz. TypeScript ve JSX, obfuscation öncesinde JavaScript koduna derlenmelidir. Ücretli bir planla HTML dosyalarını da obfuscate edebilirsiniz — korumak istediğiniz <script> etiketlerine data-javascript-obfuscator özniteliğini ekleyin; bu betikler HTML yapısı korunarak tek tek obfuscate edilir. İşaretlenen her betikteki kodun kendi kendine yeterli olması (başka betiklere başvurmaması) gerektiğini ve ES modülü betiklerinin atlandığını unutmayın.
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 3 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.
pricing.faq.usageMeasured.answer
pricing.faq.exceedLimit.answer
pricing.faq.upgradeDowngrade.answer
pricing.faq.cancel.answer
pricing.faq.paymentMethods.answer
