STATUS IS UPويكي تحسين المواقع
23تحصين
الأداء والتسليم / تحصين

تحكّم في سكربتات الطرف الثالث قبل أن تتحكم في صفحتك

نظام عملي لاكتشاف السكربتات الخارجية، إثبات فائدتها، تحميلها بأمان، احترام الموافقة، اختبار حالات الفشل، وإزالة البائعين غير المستخدمين.

تحكّم في سكربتات الطرف الثالث قبل أن تتحكم في صفحتك — دليل بصري
اقرأ
8 دقائق
المصادر
7
أعد التحقق
2027-03-27
مُراجع
قائد هندسة الأداء مع مراجعة الخصوصية وأمن التطبيق للتكاملات الخاضعة للموافقة أو الحساسة أمنيًا
الإجابة المختصرة

ابدأ بالقرار.

عامل كل سكربت طرف ثالث كاعتماد له مالك وفائدة وميزانية وفئة موافقة وتاريخ مراجعة. أنشئ جردًا واحدًا يعتمد على آثار المتصفح (browser traces)، مدير الوسوم (tag manager)، إضافات نظام إدارة المحتوى (CMS plug-ins)، والكود. سجّل نطاقات البائع، المُحفِّز (trigger)، البيانات المكشوفة، وما سيتوقف عن العمل إذا كان البائع بطيئًا أو غائبًا. أزل التكرارات والعلامات غير المملوكة أولًا.

أبقِ الكود غير الضروري خارج مسار العرض الحرج (critical rendering path)، وهو عمل المتصفح اللازم لعرض الشاشة الأولى. حمّل فقط الكود اللازم للمهمة الأولى؛ وأجّل الويدجيتات المستقلة حتى التفاعل مع الحفاظ على ترتيب الاعتماديات. اختبر مسارات الأولوية مع قبول الموافقة ورفضها ومع حجب نطاقات البائع. الكود الذي لا يمكن أن يفشل بأمان يحتاج إلى حل بديل أو عزلة أو تنفيذ مختلف.

دليل بصري

انظر إلى العمل كنظام.

استخدم هذه الخريطة لربط قرارات المقال قبل تنفيذ التكتيكات الفردية.

SIUتحصين
01أنشئ جردًا واحدًا مما يحمله المتصفح
02اجعل قرارات الاحتفاظ، الإزالة، والميزانية مرئية
03حمّل متأخرًا فقط عندما يكون التأخير آمنًا
04اجعل الموافقة بوابتك، لا فكرة ثانوية
01

أنشئ جردًا واحدًا مما يحمله المتصفح

ابدأ بصفحات تمثيلية: الصفحة الرئيسية، صفحات الهبوط، صفحات التفاصيل، البحث، السلة، الدفع، الحساب، والحملات. سجّل الزيارات الجديدة والعودة في Chrome DevTools. قارن أدلة المتصفح مع مدير الوسوم (tag manager)، إضافات نظام إدارة المحتوى (CMS plug-ins)، واعتماديات الكود؛ فوجهة نظر واحدة قد تفوّت السكربتات المحقونة.

استخدم صفًا واحدًا لكل بائع أو تكامل، وليس لكل URL فقط. سجّل النطاقات التي يتصل بها وما إذا كان بإمكانه إضافة علامات. عيّن له مالكًا تجاريًا يمكنه الدفاع عن الهدف والموافقة على الإزالة. أعد التحقق بعد الحملات، تغييرات البائع، إصدارات القوالب، وإعادة التصميم.

الحد الأدنى من الأدلة

احفظ الصفحة، المسار، نطاقات البائع، الطلبات، حجم النقل، عمل الخيط الرئيسي (main-thread work)، وظروف الاختبار. أثر المختبر (lab trace) هو دليل تشخيصي، وليس وعدًا لكل زائر.

سجّل القرار

ضمّن الهدف، المالك، فئة الموافقة، المُحفّز، البيانات المكشوفة، ترتيب الاعتماديات، الحل البديل (fallback)، وتاريخ المراجعة.

02

اجعل قرارات الاحتفاظ، الإزالة، والميزانية مرئية

اسأل كل مالك ما الأسوأ إن اختفى التكامل. إن كان الجواب غامضًا، عطلّه أو أزلّه. توصي web.dev بوضع ميزانيات، تجنب الوظائف المكررة، وتنظيف السكربتات الزائدة.

الميزانية هي حاجز توجيهي للفريق، وليست حدًا عالميًا. اضبط مخصصات لكل بائع ولكل صفحة للبايتات، الطلبات، وقت الخيط الرئيسي، وتوقيت التحميل. قارن الحالة الأساسية مع التغيير. اطلب من المالك الالتزام بالمخصص، أو إزالة تكلفة أخرى، أو الحصول على استثناء منتهي الصلاحية. استخدم مسارات قابلة للمقارنة ومقاييس تتمحور حول المستخدم.

احتفظ

احتفظ بالاعتماديات التي لها هدف حالي، وتكلفة واستخدام بيانات مقبولة من المالك، ومسار فشل مقبول.

أزل

أخرج من الخدمة البكسلات المنتهية، التحليلات المكررة، الدردشة غير النشطة، التجارب غير المستخدمة، والإضافات المهجورة عبر إصدار مرحلي.

استثناء

سجّل السبب، التكلفة، الموافق، الإجراء التعويضي، وتاريخ المراجعة.

03

حمّل متأخرًا فقط عندما يكون التأخير آمنًا

اختر سلوك التحميل عن دراية. السكربت الخارجي الكلاسيكي دون async أو defer أو module يُحمَّل ويُنفّذ قبل استمرار تحليل HTML. مع async، يجري التنزيل بشكل متوازي لكن يبدأ التنفيذ عند الجاهزية، لذا لا يُضمن الترتيب. مع defer، تُنفّذ السكربتات الكلاسيكية بعد التحليل وبترتيب المستند، قبل DOMContentLoaded. مناسب للسكربتات المرتبة؛ ولكنه ليس حلًا عالميًا.

لواجهات الدردشة الاختيارية، التضمينات الاجتماعية، الخرائط، الفيديو، أو التوصيات، اعرض عنصرًا نائبًا خفيف الوزن وحمّل البائع بعد النقر أو عند الاقتضاء. نمط الواجهة الوهمية (facade) يبدأ بتحكمك بدلًا من التضمين الكامل. حافظ على التفاعل عبر لوحة المفاتيح واحجز المساحة. لا تؤخر (defer) الكود اللازم لحساب السعر، تسجيل الدخول، معالجة الدفع، توفير إمكانية وصول أساسية، أو الوفاء بالتزام مؤكد دون بديل مُراجع.

اختر المُحفّز

حمّل فورًا فقط لعِتمدية المهمة الأولى؛ استخدم ما بعد التحليل للكود المرتب، والتفاعل أو الظهور للتضمينات الاختيارية.

احترم الترتيب

لا تضع علامة async على السكربتات المترابطة وتتوقع الحفاظ على الترتيب. وثّق واختبر سلسلة النشر.

تجنّب window load

لا تربط واجهة المستخدم الحرجة بحدث window load؛ التضمينات الطرف ثالث يمكن أن تؤخره حتى مع استخدام async أو defer.

04

اجعل الموافقة بوابتك، لا فكرة ثانوية

صنّف كل بائع مع أصحاب المصلحة في الخصوصية والشؤون القانونية الذين يفهمون الاختصاصات وتدفقات البيانات. للتكامل الخاضع للموافقة، ثبّت حالة الموافقة قبل أن يرسل الوسم البيانات ذات الصلة. تقول Google إن أمر الموافقة الافتراضي يجب أن يعمل قبل أوامر القياس، ويجب أن تَتبع التحديثات تغيير الخيار. هذا التوجيه المنتج ليس نصيحة قانونية.

اختبر الزيارة الأولى دون خيار، والقبول، والرفض، والسحب. افحص الواجهة والشبكة: وجود ويدجيت مخفي لا يثبت عدم إرسال طلب أو مُعرّف. إذا كانت منصة الموافقة تُحمّل بشكل غير متزامن، اختبر التوقيت. احفظ الخيارات بشكل مناسب وطبّق التغييرات على الصفحة الحالية والزيارات اللاحقة.

وثّق التصنيف

لا تعتمد على تسمية البائع. سجّل سبب كون الوسم أساسيًا أو اختياريًا أو محظورًا لمنطقة أو مسار معين واحصل على الموافقة.

تحقق من السحب

بعد السحب، تأكد من أن الوسوم غير الأساسية المكوّنة لا تتحمّل أو ترسل بيانات واحتفظ بأدلة الاختبار.

05

قلل من دائرة التأثير (blast radius) للكود الذي لا تملكه

تحدد OWASP فقدان التحكم في تغييرات العميل، تنفيذ كود عشوائي في المتصفحات، وتسريب البيانات الحساسة كمخاطر مركزية. حدّ من صلاحيات نشر الوسوم، راجع HTML المخصص أو ميزات الكود العشوائي، ووثق حقول طبقة البيانات المسموح بها. يمكن أن تساعد اتفاقيات البائع والمراجعة الأمنية المؤهلة في التكاملات عالية المخاطر؛ لكن لا شيء منهما يحل محل الاختبار.

Subresource Integrity، أو SRI، يتيح للمتصفح التحقق من سكربت مقابل هش تشفيري. يساعد فقط عندما يمكن تثبيت المورد وتدعم خدمة التوصيل عبر الأصل (cross-origin) CORS؛ تقول W3C إن استخدام SRI دون CORS خطأ منطقي. إنه غير مناسب للعديد من روابط البائع المتغيرة. قد يقلل iframe sandbox الوصول المباشر إلى DOM والكوكيز (cookies)، لكنه يحتاج إلى مراجعة مختصين. تستحق تدفقات الدفع والحساسة أمنيًا مراجعة مؤهلة.

قّلل البيانات

مرّر فقط الحقول الموثقة اللازمة للغرض. لا تكشف الأسرار، بيانات الدفع، أو سمات العملاء غير الضرورية.

اعرف الحد

SRI يتحقق من البايتات، وليس ما إذا كان استخدام البيانات أو الطلبات اللاحقة مناسبة؛ العزل ليس حلاً قابلاً للتطبيق فورًا.

06

درّب على فشل البائع قبل أن يواجهه العملاء

لكل بائع محتفظ به، احظر نطاقاته في بيئة اختبار أو باستخدام مانع طلبات المتصفح، ثم نفّذ المسار. اختبر أيضًا الاستجابات البطيئة وتكوين مدير الوسوم بدون التكامل. تأكد من أن المحتوى الأساسي، التنقل، النماذج، عملية الدفع، والوصول إلى الحساب تعمل كما هو مقصود. يكشف هذا الافتراضات قبل الإصدار.

حدّد إجراءات الإصلاح قبل الحادث: من يمكنه تعطيل الوسم، هل يلزم علم (flag) أو نشر عبر مدير الوسوم، كيف تتراجع، وكيفية التحقق. SIU هي تحسين وقت التشغيل والاستجابة الاستباقية: استخدم الجرد، الميزانيات، فحوصات ما قبل الإطلاق، وممارسات التراجع لتقليل مخاطر الاعتماد. لا تستطيع SIU التحكم في بنية البائع التحتية، أو ضمان التوافر، أو استبدال المراجعة.

حدّد معايير النجاح

اذكر ما يظل قابلاً للاستخدام بدون البائع، ما قد يتدهور، الحل البديل، والحد الأقصى للتأخير قبل التعطيل.

احتفظ بدليل الإصدار

أرفق أثر قبل وبعد، نتيجة الموافقة، نتيجة الحجب للبائع، ومالك التراجع في سجل التغيير.

نفّذ / تحقق

دليل المهام العملي الخاص بك.

  1. 01

    التقاط مجموعة الاعتماديات

    سجّل أثر قوالب الأولوية، ثم قارن أدلة المتصفح مع جرد مدير الوسوم (tag-manager)، ونظام إدارة المحتوى، والكود.

    تحقق: كل نطاق طرف ثالث مرتبط بصف في الجرد أو يتم التحقيق فيه قبل الإصدار.
  2. 02

    عيّن المالك

    اذكر الشخص المسؤول عن الهدف، التكلفة، استخدام البيانات، والتجديد.

    تحقق: لا يوجد تكامل محتفظ به يفتقر إلى مالك أو هدف أو تاريخ مراجعة.
  3. 03

    أزل الكود الزائد

    نفّذ إزالة مرحلية للتحليلات المكررة، البكسلات منتهية الصلاحية، التجارب الخاملة، والإضافات غير المستخدمة.

    تحقق: تم التحقق من المسارات والتقارير المطلوبة بعد الإزالة.
  4. 04

    حدد الميزانيات

    اضبط مخصصات الصفحة والبائع للطلبات، البايتات، عمل الخيط الرئيسي، والتوقيت.

    تحقق: يسجل سجل الإصدار مقارنة التغيير بالمخصص ويسجل أي استثناء منتهي الصلاحية.
  5. 05

    تحقق من التحميل والموافقة

    اختبر ترتيب الاعتماديات، الحل البديل، استخدام لوحة المفاتيح، وخيارات الموافقة.

    تحقق: تفتيش الشبكة يطابق سلوك التحميل والموافقة المعتمد.
  6. 06

    راجع الحدود

    حدّ من صلاحيات النشر، وثق حقول البيانات، وقَيّم SRI أو العزل فقط عندما تنطبق قيودهما.

    تحقق: يخضع التكامل لمراجعة أمنية أو خصوصية مناسبة لمستوى مخاطره.
  7. 07

    احظر البائع

    حاكِ تجربة بائع غير متاح أو بطيء ونفّذ المسار الأساسي من البداية للنهاية.

    تحقق: المهام الحرجة تفي بمعايير الحل البديل، أو تم إعادة تصميم المخاطرة أو قبولها صراحة.
  8. 08

    تدرّب على التعطيل والتراجع

    وثّق مسار التعطيل المصرّح به والعودة إلى التكوين المعروف الجيد.

    تحقق: شخص مسمّى اختبر الخطوات في بيئة غير إنتاجية وسجل النتيجة.
مواضيع النقاش

قارن المقايضات، لا تشارك بيانات خاصة.

استخدم هذه المحفزات مع فريقك أو مجتمع مالكي المواقع. شارك الطرق والدروس، لكن لا تلصق بيانات الاعتماد أو سجلات العملاء أو تفاصيل البنية التحتية غير العامة.

  1. 01

    أي تكامل طرف ثالث على موقعكم له الفائدة القابلة للقياس الأوضح، وما الأدلة التي سهّلت اتخاذ هذا القرار؟

  2. 02

    ما الحل البديل الذي أبقى مسار العميل مفيدًا عندما كان ويدجيت اختياري أو تضمين أو بائع قياس غير متاح؟

  3. 03

    كيف تقرّر فرق المنتج والتسويق والخصوصية والهندسة متى يجب أن تنتهي صلاحية استثناء وسم مؤقت؟

الموارد الشائعة / الموثوقة

اطّلع على المواد المصدرية.

web.devLoad Third-Party JavaScript ↗

توجيهات Google للعثور على الموارد المكلفة، قياس الأثر، تأخير التحميل، والاستضافة الذاتية.

تمت المراجعة 2026-09-27
web.devThird-party JavaScript performance ↗

نظرة عامة على تكاليف الشبكة والعرض لطرف ثالث، الميزانيات، والتنظيف.

تمت المراجعة 2026-09-27
MDN Web Docsscript: The Script element ↗

مرجع للسكربتات الكلاسيكية، async، defer، الوحدات (modules)، التكامل (integrity)، والأخطاء.

تمت المراجعة 2026-09-27
OWASPThird Party JavaScript Management Cheat Sheet ↗

توجيه أمني حول مخاطر الطرف الثالث، ضوابط الوسوم، العزل (sandboxing)، التكامل، وكشف البيانات.

تمت المراجعة 2026-09-27
Google for DevelopersSet up consent mode on websites ↗

توجيه رسمي لعلامة Google حول إعدادات الموافقة الافتراضية، التحديثات، التوقيت، والاستمرارية.

تمت المراجعة 2026-09-27
W3CSubresource Integrity ↗

مواصفة لبيانات وصف التكامل للسكربت وقيود عبر الأصل (cross-origin).

تمت المراجعة 2026-09-27
Chrome for DevelopersPerformance features reference ↗

كيفية تسجيل الآثار (traces) وتمييز أحداث الطرف الأول من الطرف الثالث.

تمت المراجعة 2026-09-27

سياسة المصادر. يستخدم هذا المقال وثائق أولية أو مرجعية عامة تمت قراءتها مباشرة. تم اختيار الموارد لتفاصيل التنفيذ، لا للمقتطفات. لا تحدد وثائق المنتج الالتزامات القانونية. الروابط الداخلية وروابط SID هي تنقلية وليست دليلًا.

توضيحات سريعة

أسئلة شائعة.

هل يجب أن يستخدم كل سكربت طرف ثالث async؟

لا. يزيل async حظر المُحلل أثناء التنزيل لكنه لا يضمن الترتيب وقد يقطع عملية العرض. استخدمه للسكربتات المستقلة؛ استخدم defer للسكربتات الكلاسيكية المرتبة، ومحفزات التفاعل للتضمينات الاختيارية.

هل يمكننا استضافة جافاسكربت البائع ذاتيًا لجعله موثوقًا؟

ليس بالضرورة. يمكن أن يزيد ذلك من تحكمك في التخزين المؤقت والتسليم، لكنه يجعل عليك مسؤولية التوافق وتحديثات الأمان. تأكد أولًا من شروط البائع، ملكية التصحيح، واختبار التراجع (regression testing).

هل يجعل SRI سكربت البائع آمنًا؟

لا. يمكن لـ SRI التحقق من البايتات المتوقعة عندما تدعم عملية التسليم ذلك. لكنه لا يقيم السلوك المقصود، جمع البيانات، أو نشاط الشبكة اللاحق، وهو غير عملي للعديد من السكربتات المتغيرة.

Status Is UP Editorial Team · محررو تمكين وقت التشغيل (Uptime Enablement Editors)

راجعه قائد هندسة الأداء مع مراجعة الخصوصية وأمن التطبيق للتكاملات الخاضعة للموافقة أو الحساسة أمنيًا. نُشر في 2026-09-27؛ وحُدِّث في 2026-09-30.