مولد تجزئة SRI
قم بإنشاء تجزئة Subresource Integrity لأي ملف JS أو CSS واحصل على برنامج نصي جاهز للصقه أو علامة رابط.
النتيجة
تتيح تقنية Subresource Integrity (SRI) للمتصفح التحقق من أن البرنامج النصي أو ورقة الأنماط التي تم جلبها من CDN أو مضيف طرف ثالث لم يتم تغييرها قبل تشغيلها - يقوم المتصفح بتجزئة البايتات التي تم تنزيلها ويرفض تنفيذ الملف إذا كان الملخص لا يتطابق مع سمة التكامل التي نشرتها. تحسب هذه الأداة هذا الملخص لأي ملف JS أو CSS تقوم بإسقاطه، بالكامل داخل علامة تبويب المتصفح، لذلك لا يحتاج الملف نفسه أبدًا إلى ترك جهازك ليتم تجزئته.
لن تنتج أداة التجزئة العامة قيمة SRI قابلة للاستخدام: تتطلب المواصفات ملخصًا مشفرًا بالأساس 64، وليس السلسلة السداسية العشرية التي تطبعها معظم أدوات المجموع الاختباري، وهي تتعرف فقط على ثلاث خوارزميات - sha256 وsha384 وsha512. يقوم هذا المولد بتقييد اختيار الخوارزمية على تلك الثلاثة بالضبط وترميز النتيجة بالطريقة الصحيحة، ثم يذهب خطوة أخرى إلى الأمام من خلال إنشاء علامة HTML كاملة حولها، مع عنصر نائب src أو حقل href يمكنك تعديله في مكانه قبل النسخ.
تحت الغطاء، تتم قراءة الملف باستخدام File API، وتجزئته باستخدام تطبيق crypto.subtle.digest() الأصلي، ويتم تحويل البايتات الناتجة إلى base64 في أجزاء صغيرة بدلاً من عملية انتشار واحدة كبيرة - وهي تفاصيل مهمة بمجرد أن يتجاوز حجم ملف JS المجمع ما يقرب من مائة ألف بايت، حيث يمكن أن تصل أساليب التحويل الساذجة إلى حد مكدس الاستدعاءات للمتصفح.
يتم تحديد sha384 افتراضيًا لأنها الخوارزمية الأكثر شيوعًا الموصى بها في أمثلة ووثائق SRI، وموازنة طول الملخص مقابل مقاومة الاصطدام، ولكن sha256 وsha512 على بعد نقرة واحدة إذا حدد خط أنابيب البناء أو موفر CDN متطلبات مختلفة.