Repository navigation
Security ar
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
تشرح هذه الصفحة كيفية الإبلاغ عن مشكلة أمنية، والنقاط الأمنية التي ينبغي معرفتها عندما يمرر تطبيقك مدخلات المستخدمين إلى docxi.
يُرجى عدم الإبلاغ عن المشكلات الأمنية في البلاغات (issues) العامة، بل أرسلها بالبريد الإلكتروني إلى عناوين الصيانة المذكورة في docxi.gemspec. اذكر إصدار docxi وطريقة مختصرة لإعادة إنتاج المشكلة.
يمرر docxi 0.0.x سلاسل مسارات الصور إلى Kernel#open. وتنفّذ Kernel#open أي سلسلة تبدأ بالرمز | كأمر shell، لذا فمن يتحكم في مسار صورة يستطيع تشغيل أوامر على خادمك. يفتح الإصدار 0.1.0 الملفات باستخدام File.open وينزّل عناوين URL باستخدام URI#open، ولا ينفّذ أي منهما أوامر.
تمرير النص آمن. يُكتب النص ومحتوى الجداول والسلاسل الأخرى كنص XML أو كقيم سمات تُهرِّبها nokogiri. لا يمكن لمدخلات المستخدمين إضافة عناصر إلى المستند.
مصادر الصور تحتاج إلى حذر. تقبل add_media:
| المصدر | ما تفعله docxi |
|---|---|
| كائن IO فتحته بنفسك | تقرؤه |
| مسار ملف | تقرأ ذلك الملف من قرص خادمك |
عنوان URL من نوع http أو https أو ftp
|
تنزّله من خادمك |
إذا كان المستخدم يستطيع اختيار المسار، فقد يحصل على أي ملف قابل للقراءة على خادمك، مثل ملفات الإعدادات أو المفاتيح، مُضمَّنًا في المستند. وإذا كان يستطيع اختيار عنوان URL، فسيطلبه خادمك، وقد يصل ذلك إلى عناوين داخلية (تزوير الطلبات من جانب الخادم، SSRF). مرّر كائن IO فتحته بنفسك، أو اسمح فقط بمسارات ومضيفين معروفين.
الارتباطات التشعبية تشير إلى أي مكان يحدده عنوان URL. تحقق من عناوين URL التي يقدمها المستخدمون قبل تمريرها إلى add_hyperlink.
- تُنشر الإصدارات من GitHub Actions باستخدام النشر الموثوق (trusted publishing) في RubyGems، لذا لا يُخزَّن أي مفتاح API في المستودع.
- تضبط البيانات الوصفية للحزمة الخيار
rubygems_mfa_required، لذا تتطلب عمليات الدفع التي تستخدم مفتاح API شخصيًا المصادقة متعددة العوامل.
docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages