PDF.js
PDF.js هي مكتبة جافا سكريبت تُستخدم لعرض ملفات PDF باستخدام HTML5 Canvas المتوافقة مع معايير الويب . وتقود مؤسسة موزيلا هذا المشروع بعد أن أطلقه أندرياس غال (كتجربة في البداية) عام 2011.
التاريخ والتطبيق
تم إنشاء PDF.js في الأصل كإضافة لمتصفح فايرفوكس [ 4 ] ، وهو مُضمّن فيه منذ عام 2012 (الإصدار 15) [ 5 ] [ 6 ] ، ومُفعّل افتراضيًا منذ عام 2013 (الإصدار 19) [ 7 ] [ 8 ] . أُضيف إلى فايرفوكس لنظام أندرويد في عام 2023 (الإصدار 111) [ 9 ] [ 10 ] .
تم إنشاء هذا المشروع لتوفير طريقة لعرض مستندات PDF مباشرةً في متصفح الويب، مما يمنع المخاطر الأمنية المحتملة عند فتح مستندات PDF خارج المتصفح، حيث يتم عزل كود عرض المستند داخل المتصفح. [ 11 ] ويستخدم المشروع عنصر Canvas من HTML5 ، مما يتيح سرعات عرض عالية. [ 11 ]
يُستخدم PDF.js أيضًا في Thunderbird ، [ 12 ] وownCloud ، [ 13 ] وNextcloud ، [ 14 ] [ 15 ] وهو متوفر كإضافة للمتصفح في Google Chrome / Chromium ، [ 16 ] وPale Moon، [ 17 ] [ 18 ] و SeaMonkey . [ 18 ] [ 19 ]
يمكن دمجه أو تضمينه في تطبيق ويب أو تطبيق أصلي لتمكين عرض ملفات PDF وعرضها، كما يسمح باستخدامات متقدمة مثل العرض من جانب الخادم .
تقوم العديد من تطبيقات الويب، بما في ذلك Dropbox ، [ 20 ] Slack ، [ 21 ] و LinkedIn Learning [ 22 ] بدمج PDF.js لتمكين معاينة مستندات PDF.
سلوك
وفقًا لمعيار أجرته موزيلا ، فإن PDF.js يتمتع بأداء جيد لعرض معظم ملفات PDF الشائعة، بينما قد يواجه بعض المشاكل مع المستندات الكبيرة أو التي تحتوي على رسومات كثيرة. [ 23 ]
يدعم PDF.js معظم مواصفات PDF (بما في ذلك دعم النماذج أو XFA [ 24 ] )، ولكن بعض الميزات لم يتم تنفيذها بعد، مما قد يؤثر على سلوك العرض اعتمادًا على الميزات التي يستخدمها المستند. [ 25 ]
تتضمن بعض ميزات PDF/X أو ميزات PDF الاختيارية غير المدعومة في PDF.js ما يلي:
- ملفات تعريف ألوان ICC [ 26 ]
- ألوان موضعية
- محاكاة الطباعة المتراكبة [ 27 ]
- مجموعات الشفافية (الاستبعاد/العزل) [ 28 ]
- طباعة عالية الدقة
يُشير مجتمع مُساهمي PDF.js أيضًا إلى أن سلوك PDF.js في المتصفحات يختلف باختلاف دعم المتصفحات للميزات المطلوبة. [ 29 ] سيكون الأداء والموثوقية في أفضل حالاتهما على متصفحي Chrome وFirefox، حيث يتم دعمهما بالكامل ويخضعان لاختبارات آلية.
حماية
نظرًا لأن مكتبة PDF.js تقوم بتحليل المستندات غير الموثوقة داخل المتصفح، فقد كانت عرضةً للعديد من الثغرات الأمنية المُكتشفة. في عام 2015، وثّقت الثغرة CVE-2015-2743 منح صلاحيات مفرطة للعاملين الداخليين في PDF.js، وقد تمّت معالجتها في Firefox 39 وفروع ESR 31.8 و38.1. [ 30 ] [ 31 ] كما استغلّت وحدة Metasploit ذات الصلة ثغرة حقن JavaScript بصلاحيات عالية في Firefox 35 و36 من خلال عارض ملفات PDF. [ 32 ]
في عام 2018، كشف CVE-2018-5158 أن مكتبة PDF.js لم تُعقّم وظائف حاسبة PostScript بشكل كافٍ ، مما سمح لملفات PDF المُصممة خصيصًا بحقن JavaScript بصلاحيات صفحة التضمين. [ 33 ] [ 34 ] [ 35 ]
تم الكشف عن ثغرة أمنية أخرى، CVE-2024-4367، في مايو 2024 من قِبل باحثين في مختبرات كوديان. [ 36 ] تنبع هذه الثغرة من غياب فحص نوع البيانات في معالجة الخطوط في PDF.js، حيث FontMatrixيمكن تحويل بيانات تعريفية مخصصة مضمنة في ملف PDF إلى سلسلة نصية eval، مما يسمح بتنفيذ أوامر جافا سكريبت عشوائية ضمن سياق PDF.js. [ 37 ] عالجت موزيلا هذه المشكلة في PDF.js 4.2.67، وفايرفوكس 126، وفايرفوكس ESR 115.11، وثندربيرد 115.11. [ 38 ] أصدر مكتب خدمات تكنولوجيا المعلومات بولاية نيويورك ووكالة الأمن السيبراني في سنغافورة تحذيرات وطنية بشأن هذه الثغرة . [ 39 ] [ 40 ]
انظر أيضاً
مراجع
- 1 2 "الإصدارات · mozilla/pdf.js" . GitHub . تم الاطلاع عليه بتاريخ 12 مارس 2021 .
- ↑ "الإصدار 6.1.200" . 27 يونيو 2026. تم الاطلاع عليه في 28 يونيو 2026 .
- ↑ "pdf.js/LICENSE at master · mozilla/pdf.js" . GitHub . 17 فبراير 2022.
- ↑ "عارض ملفات PDF (متوقف)" . addons.mozilla.org . مؤرشف من الأصل في 5 ديسمبر 2015. تم الاطلاع عليه في 2 ديسمبر 2015 .
- ↑ بارفيني، لوسيان (30 أبريل 2012). "إضافة PDF.JS ولوحة إدارة التنزيلات إلى فايرفوكس 15" . سوفتبيديا . سوفت نيوز . تاريخ الاسترجاع: 15 مايو 2026 .
- ^ بلاغوفيشتشينسكي ، أنطون (29 أغسطس 2012). "لقد حصلت على الإصدار الجديد من متصفح Firefox 15" [ تم إصدار الإصدار الجديد 15 من متصفح Firefox ] . روسيسكايا غازيتا (بالروسية) . تم الاسترجاع 9 سبتمبر 2012 .
- ↑ "الخطأ رقم 773397 - تعطيل pdf.js قبل الإصدار التجريبي الخامس من فايرفوكس 15" . bugzilla.mozilla.org . تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ "ملاحظات إصدار فايرفوكس 19.0" . mozilla.org . تم الاطلاع عليه بتاريخ 30 أبريل 2013 .
- ↑ "فايرفوكس لنظام أندرويد 111.0، اطلع على جميع الميزات الجديدة والتحديثات والإصلاحات" . www.mozilla.org . تم الاطلاع عليه بتاريخ 19 أبريل 2024 .
- ↑ أدهيكاري، سوميت (16 مارس 2023). "فايرفوكس 111 لنظام أندرويد يوفر حماية كاملة لملفات تعريف الارتباط وعارض ملفات PDF" . عناوين أندرويد . تم الاطلاع عليه في 15 مايو 2026 .
- 1 2 شانكلاند، ستيفن (24 يونيو 2011). "موزيلا تتطلع إلى توفير ملفات PDF سهلة الاستخدام على الويب" . سي نت . تم الاطلاع عليه في 24 مايو 2022 .
- ↑ "810815 - دمج pdf.js مع Thunderbird" . bugzilla.mozilla.org . تم الاطلاع عليه بتاريخ 28 يناير 2022 .
- ↑ owncloud/files_pdfviewer ، ownCloud، 8 فبراير 2020 ، تم الاطلاع عليه في 28 مارس 2020
- ↑ nextcloud/files_pdfviewer ، نيكست كلاود، 18 مارس 2020 ، تم الاطلاع عليه في 28 مارس 2020
- ↑ "عارض ملفات PDF - تطبيقات - متجر التطبيقات - Nextcloud" . apps.nextcloud.com . تم الاطلاع عليه بتاريخ 28 مارس 2020 .
- ↑ "عارض ملفات PDF" . متجر Chrome الإلكتروني . تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ "إضافات - عارض ملفات PDF من القمر الشاحب" . القمر الشاحب - إضافات . مؤرشف من الأصل في 3 يناير 2020. تم الاطلاع عليه في 4 مايو 2021 .
- 1 2 "IsaacSchemm/pdf.js-seamonkey: نسخة SeaMonkey من pdf.js" . GitHub . مؤرشف من الأصل في 6 ديسمبر 2020. تم الاطلاع عليه في 4 مايو 2021 .
- ↑ "عارض ملفات PDF لبرنامج SeaMonkey" . إضافات لبرنامج SeaMonkey . 25 أبريل 2020. مؤرشف من الأصل في 13 يناير 2020. تم الاطلاع عليه في 13 يناير 2020 .
- ↑ لورا هاريسنيل. "التعليقات التوضيحية على معاينات المستندات" . dropbox.tech . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "ما يهمك يهمنا. - هندسة سلاك" . هندسة سلاك . ١٦ نوفمبر ٢٠١٦. تم الاطلاع عليه بتاريخ ٥ أغسطس ٢٠٢١ .
- ↑ راوات، أنوراغ (24 أبريل 2019). "من الداخل: التعلم باستخدام المستندات" . engineering.linkedin.com . تم الاطلاع عليه في 5 أغسطس 2021 .
- ↑ بوتشينيك، ثوربن (8 مايو 2014). "ما مدى سرعة PDF.js؟ - مدونة موزيلا هاكس - مدونة مطوري الويب" . موزيلا . تم الاطلاع عليه في 15 مايو 2016 .
- ^ "1706133 - (pdf-xfa) [ ميتا ] دعم XFA" . bugzilla.mozilla.org . تم الاسترجاع 28 يناير 2022 .
- ↑ "دليل تقييم عرض PDF.js" . PDFTron . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "دعم ملفات تعريف ICC للصور · المشكلة رقم 2856 · mozilla/pdf.js" . GitHub . تم الاطلاع عليه بتاريخ 24 مايو 2022 .
- ↑ "دعم الطباعة الفوقية · المشكلة رقم 7360 · mozilla/pdf.js" . GitHub . تم الاطلاع عليه بتاريخ 24 مايو 2022 .
- ↑ "مشكلة تتعلق بمجموعات الإقصاء. · المشكلة رقم 3136 · mozilla/pdf.js" . GitHub . تم الاطلاع عليه بتاريخ 24 مايو 2022 .
- ↑ "الأسئلة الشائعة · ويكي mozilla/pdf.js" . جيت هاب . تم الاطلاع عليه في 5 أغسطس 2021 .
- ↑ "CVE-2015-2743" . تفاصيل CVE . مؤرشف من الأصل في 4 يونيو 2016. تم الاطلاع عليه في 15 مايو 2026 .
- ↑ "cve-2015-2743" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ "ثغرة حقن جافا سكريبت بصلاحيات عالية في ملف 'pdf.js' لمتصفح موزيلا فايرفوكس (Metasploit)" . قاعدة بيانات الثغرات الأمنية . الأمن الهجومي . 2015. EDB-ID:37958. مؤرشف من الأصل في 12 سبتمبر 2015. تم الاطلاع عليه في 15 مايو 2026 .
- ↑ "CVE-2018-5158" . قاعدة بيانات GitHub الاستشارية . تم الاطلاع عليها بتاريخ 15 مايو 2026 .
- ↑ "CVE-2018-5158" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ "CVE-2018-5158" . تفاصيل CVE . مؤرشف من الأصل بتاريخ 18 أغسطس 2019. تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ "cve-2024-4367" . nvd.nist.gov . تم الاطلاع عليه بتاريخ 15 مايو 2026 .
- ↑ سويتين، توماس (20 مايو 2024). "CVE-2024-4367: تنفيذ جافا سكريبت عشوائي في PDF.js" . مختبرات كوديان . مؤرشف من الأصل في 20 يونيو 2024. تم الاطلاع عليه في 15 مايو 2026 .
- ↑ "إصلاح الثغرات الأمنية في فايرفوكس 126 - بيان أمني من مؤسسة موزيلا 2024-21" . موزيلا . 14 مايو 2024. مؤرشف من الأصل في 15 يونيو 2024. تم الاطلاع عليه في 15 مايو 2026 .
- ↑ "ثغرة أمنية في مكتبة Mozilla PDF.js قد تسمح بتنفيذ تعليمات برمجية ضارة" . its.ny.gov . مكتب خدمات تكنولوجيا المعلومات بولاية نيويورك. 2024. تاريخ الاطلاع: 15 مايو 2026 .
- ↑ "ثغرة أمنية خطيرة في Mozilla PDF.js" . وكالة الأمن السيبراني في سنغافورة . 2024. مؤرشف من الأصل في 13 يونيو 2025. تم الاطلاع عليه في 15 مايو 2026 .
روابط خارجية
- الموقع الرسمي

- "عرض ملفات PDF في فايرفوكس" . مساعدة فايرفوكس . موزيلا.
- كريس جونز؛ أندرياس غال ؛ وآخرون (15 يونيو 2011). "pdf.js: عرض ملفات PDF باستخدام HTML5 وجافا سكريبت" . مدونة أندرياس غال .
- كاتالين سيمبانو (3 مايو 2012). "نص اليوم: pdf.js" . سوفتبيديا . مؤرشف من الأصل في 13 يناير 2015. تم الاطلاع عليه في 3 يناير 2020 .
- برامج مجانية متعددة المنصات
- فايرفوكس
- قارئات ملفات PDF المجانية
- برامج ويب مجانية
- مكتبات جافا سكريبت
- تم دمج إضافات فايرفوكس في فايرفوكس
