این ابزار درست کار نمی‌کند؟

دربارهٔ ابزار «مبهم‌سازی کد JavaScript آنلاین»

این ابزار کد منبع JavaScript را مبهم می‌کند، خواندن و مهندسی معکوس آن را دشوارتر می‌کند در حالی که عملکرد آن را حفظ می‌کند. نام متغیرها به شناسه‌های کوتاه یا تصادفی تغییر می‌کنند، رشته‌های literal کدگذاری می‌شوند، جریان کنترل می‌تواند مسطح شود، و کد مرده می‌تواند برای گیج کردن تحلیل ایستا درج شود.

مبهم‌سازی جایگزینی برای امنیت مناسب نیست — هر کسی با زمان و انگیزه کافی می‌تواند ابهام را برطرف کند. این بازرسی معمولی منطق کسب‌وکار را بازمی‌دارد، تلاش‌های دور زدن مجوز را کند می‌کند، و سرقت ادبی کپی-پیست اسکریپت‌های پولی را دلسرد می‌کند.

آگاه باشید که مبهم‌سازی معمولاً اندازه فایل را افزایش می‌دهد و می‌تواند اجرا را کند کند. کدی را که نیاز به اشکال‌زدایی در تولید دارد مبهم نکنید؛ از نقشه‌های منبع برای حفظ پیوند با منبع اصلی برای اشکال‌زدایی خود استفاده کنید.

چطور از این ابزار استفاده کنم؟

چطور source JavaScript را برای خواندن سخت‌تر obfuscate کنم؟

  1. JS را بچسبانید

    source خود را در فیلد «JS» قرار دهید. obfuscator روی syntax استاندارد ES2020+ کار می‌کند؛ module import‌ها از نظر ساختاری دست‌نخورده می‌مانند پس نتیجه هنوز به‌عنوان module load می‌شود، اما داخل آن بسیار متفاوت به‌نظر می‌رسد.

  2. «اجرا» را بزنید

    خروجی یک فیلد `obfuscated` است. identifier‌ها به رشته‌های کوتاه یا تصادفی rename می‌شوند، string literal‌ها به lookup table استخراج می‌شوند، dead-code reorder می‌شود، و control flow جایی که safe باشد flatten می‌شود.

  3. چرا security نیست

    obfuscation یک reverse-engineer مصمم را کند می‌کند؛ code را secret نمی‌کند. هر چیزی که browser اجرا می‌کند، debugger می‌تواند step through کند. برای secret‌های واقعی (API key، business logic) آن‌ها را روی server نگه دارید — obfuscate کردن JS shipped فقط inevitable را تأخیر می‌اندازد.

  4. side effect‌هایی که باید مراقب بود

    JS obfuscated بزرگ‌تر و کندتر از original است — معمولاً ۳۰-۸۰٪ کندتر برای loop‌های tight. همچنین debugging source-map را می‌شکند مگر اینکه map جداگانه‌ای تولید کنید. برای bundle‌های production، minification را به obfuscation ترجیح دهید.