Ne işe yarar
JavaScript obfuscator, bir betiği tam olarak aynı şekilde çalışmaya devam edecek ama insanların okuması ve kopyalaması çok daha zor olacak biçimde yeniden yazar. Değişken ve fonksiyon adları _0x3f2a gibi anlamsız tanımlayıcılara dönüşür, dize değişmezleri kodlanmış bir arama tablosuna taşınır ve daha yüksek seviyelerde kontrol akışı karıştırılır ve araya ölü kod eklenir.
Düz JavaScript olarak yayınladığınız ve kelimesi kelimesine kopyalanmasını istemediğiniz tarayıcı oyunları, demolar, widget’lar ve lisans kontrolleri için kullanışlıdır.
Nasıl kullanılır
- JavaScript kodunuzu yapıştırın veya bir
.jsdosyası açın. - Bir Güç seçin:
- Düşük yerel adları yeniden adlandırır ve dizeleri bir arama dizisine taşır. Çıktı hızlı ve oldukça küçük kalır.
- Orta kodlanmış dizeler, kontrol akışı düzleştirme ve bir miktar ölü kod ekler.
- Yüksek her şeyi tam güçte uygular. Sonuç birkaç kat daha büyük ve belirgin şekilde daha yavaş olabilir.
- Global adları yeniden adlandır seçeneğini yalnızca betiğin dışındaki hiçbir şey onun üst düzey fonksiyonlarına veya değişkenlerine başvurmuyorsa açın.
- Sonucun birkaç satıra yayılmasını istiyorsanız Tek satır çıktı seçeneğini kapatın.
- Gizlenmiş kodu kopyalayın veya indirin ve dağıtmadan önce test edin.
Örnek
Örnek, bir greet fonksiyonu ve bir ziyaret sayacı tanımlar. Düşük güçte obfuscation’dan sonra kod onaltılık adlardan oluşan tek bir satırdır, ancak çalıştırıldığında yine de Hello, Ada! You have visited 1 time(s). yazdırır.
Obfuscation ve küçültme
JavaScript ve CSS küçültücünün yaptığı gibi küçültme, dosyaları daha küçük ve daha hızlı indirilebilir yapmak için boşlukları kaldırır ve adları kısaltır. Obfuscation ise boyut açısından ters yönde ilerler: kodu anlamayı zorlaştırmak için bilerek dolaylılık ekler. Pek çok proje her şeyi küçültür ve yalnızca korunmaya değer mantık içeren birkaç dosyayı gizler.
Sınırlar
Obfuscation gizli bilgileri koruyamaz. Tarayıcının çalıştırabildiği her şeyi bir kullanıcı eninde sonunda inceleyebilir; bu yüzden API anahtarlarını ve gizli kalması gereken iş kurallarını sunucunuzda tutun. Ağır ayarlar kodu da yavaşlatır; bu yüzden onları sık çalışan döngülerde ve performansa duyarlı sayfalarda kullanmaktan kaçının.
SSS
› Obfuscation kodumun davranışını değiştirir mi?
Hayır. Gizlenmiş betik orijinaliyle aynı şekilde davranır; yalnızca biçimi değişir. Testlerinizi her zaman gizlenmiş derleme üzerinde çalıştırın, çünkü kendi kaynağını veya fonksiyon adlarını inceleyen kod farklı davranabilir.
› Gizlenmiş kod geri çözülebilir mi?
Tamamen değil, ancak kararlı ve zamanı olan biri yine de ne yaptığını çözebilir. Obfuscation'ı sıradan kopyalamaya karşı bir hız kesici olarak görün; API anahtarları gibi gizli bilgileri saklamak için asla kullanmayın.
› Global adları yeniden adlandır seçeneğini ne zaman açmalıyım?
Yalnızca betik kendi kendine yeterliyse. Global adları yeniden adlandırmak, üst düzey fonksiyonlarınızı adıyla çağıran HTML özniteliklerini, diğer betikleri veya testleri bozar.
› Kodum bir yere yükleniyor mu?
Hayır. Obfuscation, açık kaynaklı javascript-obfuscator kütüphanesiyle tarayıcınızda çalışır.