مُبهِّم JavaScript
يرفع الإبهام كلفة قراءة مصدر JavaScript الخاص بك، ليس مطلقا (لا إبهام واجهة أمامية مضاد للرصاص) لكن بما يكفي لتثبيط الفحص العابر وإبطاء الكشط الآلي. تطبّق هذه الأداة ترميز مصفوفة السلاسل، وتشويه المعرّفات، وتسطيح تدفق التحكم، وحقن الكود الميت اختياريا، مع إمكانية اختيار كل خيار حسب مدى العدوانية التي تريدها.
كيفية إبهام JavaScript
-
1
الصق المصدر
أي JS صالح. إن كان يعتمد على أسماء خصائص عامة محددة من صفحة مضيفة، اضبطها كمحجوزة.
-
2
اختر التقنيات
ترميز السلاسل (hex / base64)، تشويه المعرّفات، تسطيح تدفق التحكم، حقن الكود الميت، غلاف ذاتي الدفاع.
-
3
اختر ملف الهدف
متصفح (آمن لـ ES5، دون واجهات Node)، أو Node.js (يسمح بـ `require` و`Buffer`)، أو منخفض (تصغير غالبا).
-
4
أبهِم
تُخرج الأداة الكود المحوّل مع فارق في الحجم. قد تجعل الإعدادات العدوانية المخرَج أكبر بـ 3-5 مرات من المصدر.
التقنيات وما تكلّفك
| التقنية | ترفع جهد المهاجم | كلفة وقت التشغيل | كلفة الحجم |
|---|---|---|---|
| إعادة تسمية المتغيرات | منخفضة | لا تُذكر | أصغر (أثر جانبي للتصغير) |
| ترميز مصفوفة السلاسل | متوسطة | ضئيلة (بحث واحد لكل سلسلة) | +10-30% |
| تسطيح تدفق التحكم | عالية | قابلة للقياس (نحو 2-5%) | +50-150% |
| حقن الكود الميت | منخفضة (مسرح أمان) | صغيرة | +20-50% |
| غلاف ذاتي الدفاع | متوسطة | فحص لمرة واحدة | +5-10% |
| حماية التنقيح | متوسطة (يكشف أدوات المطور) | فحص لمرة واحدة | +5% |
| VM / المحاكاة الافتراضية (مدفوع) | عالية جدا | كبيرة (5-20x) | +300-500% |
ما لا يستطيع الإبهام حمايته
- الأسرار. أي ثابت في مصدر واجهتك الأمامية قابل للقراءة بإعطائه وقتا كافيا. مفاتيح واجهة البرمجة، أسرار المصادقة، منطق التسعير، لا تعتمد أبدا على الإبهام لإخفائها. انقلها إلى الخادم.
- الخوارزميات ذات المخرَج القابل للملاحظة. إن استطاع المتصفح تشغيلها، فمهاجم بمنقّح يستطيع ملاحظة كل مُدخل ومخرَج. الإبهام يبطئ ذلك؛ لا يوقفه.
- الكشط الآلي على نطاق واسع. يعتمد منع الكشط على الكشف السلوكي (البصمات، حدود المعدل، CAPTCHA)، لا على إبهام المصدر.
متى يستحق الإبهام العناء
- مقاومة العبث على حزم SDK المضمنة (الترخيص، حزم SDK للإعلانات، عملاء الألعاب).
- رفع الكلفة للنسخ واللصق منخفض الجهد لتنفيذ منافس.
- جعل تصنيف السكربتات الآلي أصعب للكاشطات واسعة الطيف.
متى يكون عكسي المفعول
- لديك مجمّع حزم أصلا. Webpack + Terser في وضع الإنتاج يصغّر ويشوّه المحليات أصلا. إضافة تمريرة إبهام ثانية تجلب لك القليل وتضخّم حجم الحزمة.
- تحسّن للرسم الأول / Core Web Vitals. يضاعف الإبهام العدواني الحزمة ثلاثا؛ ما يضر بـ FCP وLCP.
- عليك تنقيح الإنتاج. الإبهام الثقيل يجعل تتبعات مكدس Sentry عديمة الفائدة تقريبا دون خريطة مصدر مطابقة، وشحن خريطة المصدر يهزم الإبهام.
أخطاء شائعة
- معاملة الإبهام كمكافئ للتشفير. ليس كذلك، إنه مطب سرعة.
- شحن خريطة المصدر مع الحزمة المبهَّمة إلى الإنتاج. ذلك يبطل الإبهام تماما.
- إبهام مكتبات طرف ثالث حمّلتها أصلا من CDN. تحصل على عقوبة الحجم دون أي مكسب.
الأسئلة الشائعة
لا. الإبهام مطب سرعة، لا قفل. محلل مصمم بمنقّح سيستعيد المنطق. يرفع الكلفة بما يكفي لردع الفحص العابر ومعظم الكاشطات الآلية، لكنه ليس أمانا.
إن وصلت إلى الخصائص ديناميكيا (obj["field_name"]، Object.keys(obj)) أو اعتمدت على أسماء دوال/أصناف محددة للصفحة المضيفة، أضفها إلى القائمة المحجوزة. دون ذلك، قد تكسر إعادة تسمية الخصائص التكاملات الخارجية.
احتفظ بالمصدر الأصلي. المُبهِّم تحويل أحادي الاتجاه؛ لا يمكنك استعادة الأصل تماما من المخرَج المبهَّم، بل تقريبا قابلا للقراءة فقط.
الإبهام الخفيف يضيف نحو 10-30%. تسطيح تدفق التحكم مع مصفوفات السلاسل يضيف 50-150%. أثقل الإعدادات قد تضاعف الحجم ثلاثا. تحقق من عدّاد حجم المخرَج قبل الشحن.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مدقق البريد الإلكتروني
تحقق من عنوان بريد إلكتروني: فحص صياغة RFC 5322، واستعلام حي عن سجل MX، بالإضافة إلى تفاصيل الجزء المحلي والنطاق والطول. لا يتم إرسال أي بريد.
مولد EditorConfig
أنشئ ملف .editorconfig بقواعد نمط المسافة البادئة وحجمها ونهاية السطر ومجموعة الأحرف والمسافات البيضاء، لتنسيق موحّد عبر بيئات التطوير المتكاملة (IDEs) والمحررات.
منسق HTML
نسّق HTML محلياً في المتصفح بمسافة بادئة من مسافتين أو أربع مسافات. لا يُرفع HTML ولا يُتحقق منه.
الأداة متاحة بلغات أخرى
- Obfuscateur JavaScript [FR]
- JavaScript-obfuskerare [SV]
- เครื่องมือปิดบังโค้ด JavaScript [TH]
- Obfuscator JavaScript [ID]
- Trình làm rối mã JavaScript [VI]
- JavaScript 난독화 도구 [KO]
- JavaScript-Obfuscator [DE]
- Ofuscador de JavaScript [ES]
- JavaScript-obfuscator [NL]
- Obfuskator JavaScript [PL]
- JavaScript難読化ツール [JA]
- Ofuscador de JavaScript [PT]
- Обфускатор JavaScript [RU]
- JavaScript Kod Gizleme Aracı [TR]
- JavaScript混淆器 [ZH]
- JavaScript Obfuscator [EN]
- Offuscatore JavaScript [IT]