موقع Session Context يعرض ما تعرفه صفحة الويب عن زائرها حتى مع إيقاف JavaScript
إيقاف JavaScript لا يوقف ما يرسله المتصفح بنفسه قبل تشغيل أي كود، وفرق المنتجات تجمع من زوارها أكثر مما تقصد في الغالب.
وسم
إيقاف JavaScript لا يوقف ما يرسله المتصفح بنفسه قبل تشغيل أي كود، وفرق المنتجات تجمع من زوارها أكثر مما تقصد في الغالب.
الاعتراض على reduce مفهوم من طريقة قراءتها، لكن الملاحظة الأثقل في التدوينة أن هذا الاعتراض صار أقل، ربما لأن مراجعة الكود نفسها صارت أقل تدقيقًا.
أدوات JavaScript صارت تُكتب بلغات أخرى، والانتقال إلى الأداة الأسرع هنا تغيير سطر في الإعدادات لا إعادة كتابة للمشروع.
أخطاء غريبة ظهرت في Safari وحده سنوات كان سببها قرارًا معماريًا بُني على مواصفة متروكة منذ 2016، لا كود المطورين.
قرار الانتقال إلى ESM الذي أجّلته فرق كثيرة لسنوات اتخذه الإطار نيابة عنها، وأغلب كلفة الترقية ستقع في أدوات البناء والاختبار لا في منطق التطبيق.
أشهر خطأ صامت في Promise.all لا يرمي أي error بل يبدّل القيم بهدوء، والدالة الجديدة تزيل سببه بجعل الاسم لا الترتيب هو ما يربط كل نتيجة بمصدرها.
حماية من ملفات zip bomb كانت مسؤولية كل مطور يتذكرها أو ينساها، صارت جزءًا من الـ runtime نفسه، ومعها قد تختفي حزمة كاملة من كثير من المشاريع.
نشر الإصلاح على إصدارات قديمة في اليوم نفسه تقدير من الفريق لخطورته، وأي تطبيق Angular يعمل بـ SSR معني به مباشرة لا في موعد التحديث القادم.
جزء كبير من مشكلة يعمل على جهازي ولا يعمل على الـ CI سببه ملف lockfile يتغير دون تغيير حقيقي، والإصدار الجديد يعالج هذا السبب تحديدًا.
مساحة الهجوم في أي مشروع تشمل قرارات لم يتخذها صاحبه؛ فالمطور اختار Next.js، واختار Next.js مكتبة sharp، واختارت sharp مكتبة libheif التي وقعت فيها الثغرة.
كان اكتشاف ضعف الجهاز يتطلب إرهاقه أولًا بحسابات تجريبية، والآن تصل المعلومة مجانًا قبل رسم أول pixel، وهو ما يهم أسواقًا تغلب فيها الأجهزة المتوسطة.
الاستغناء عن الـ virtual DOM في Vue ليس قرار إعادة كتابة للتطبيق، بل قرار على مستوى المكوّن الواحد، يمكن أن يبدأ بالشاشة الأثقل وحدها.
كل حزمة تختفي من المشروع تعني سلسلة توريد أقصر وحساب مشرف أقل يمكن اختراقه، لكن الاعتماد لا يختفي، بل ينتقل من npm إلى الـ runtime نفسه.
إغلاق الموارد يصبح مرتبطًا بتعريف المتغير نفسه لا بكود يُكتب يدويًا ويمكن نسيانه، ومن يكتب TypeScript يقترب من استهداف المحركات مباشرة دون تحويل.
سطر script واحد يوفّر السرعة لكنه يربط عمل الصفحة بنطاق لا يملكه صاحب الموقع، وحين ينقطع هذا النطاق أو يُحجب تفتح الصفحة ناقصة لا معطلة.
التشفير داخل تطبيقات الويب ظل عالقًا على الخوارزميات الكلاسيكية لأن JavaScript لم تكن تملك بديلًا، والبيانات التي يجب أن تبقى سرية لعشرين عامًا هي أول ما يتأثر بهذا الفراغ.
إغلاق سطح هجوم لا يلغي الهجوم بل ينقله، والمهاجم انتقل من وقت التثبيت إلى وقت الاستيراد، ومعه تحولت ملفات إعدادات مساعدات البرمجة إلى هدف مفضل.