Format Atlas

أدلة

حقن الصيغ في CSV والتصدير الآمن

تحافظ علامات اقتباس CSV على حدود الحقول، لكنها لا تمنع برنامج الجداول من تفسير خلية على أنها صيغة. اختر طريقة تناسب التطبيق المستهدف واختبرها فيه.

أي تنسيق يجب أن تختار؟

اختر وفق دور كل ملف في سير عملك.

  • CSV للمعالجة بين الأنظمة → احتفظ بالقيم واتبع مواصفات المحلل لدى الجهة المستقبلة
  • CSV سيفتحه المستخدم في برنامج جداول → اختر إخراجًا يعامل القيم غير الموثوقة كنص واختبره في التطبيق المستهدف
  • هل تكفي علامات الاقتباس؟ → حماية بنية CSV ومنع تنفيذ الصيغ مسألتان مختلفتان
  • ما المعالجة الصحيحة؟ → تختلف البرامج؛ لا تفترض وجود تحويل واحد مناسب للجميع

قد تُفسَّر خلية CSV على أنها صيغة

إذا احتوى ملف CSV على قيم من نموذج ويب أو قاعدة بيانات، فقد يفسر Excel أو LibreOffice Calc أو برنامج جداول آخر الخلية التي تبدأ برموز مثل `=` على أنها صيغة. وإذا تمكن مهاجم من التحكم في القيمة، فقد تكشف الصيغة بيانات أو تسبب أضرارًا أخرى عبر سلوك التطبيق أو تصرفات المستخدم. ويتوقف الأثر على البرنامج وإعداداته.

علامات اقتباس CSV وحدها لا تمنع الصيغ

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

اختر إخراجًا نصيًا يناسب التطبيق المستهدف

ميّز أولًا بين CSV للمعالجة الآلية والملفات التي سيفتحها الأشخاص في برنامج جداول. في الحالة الثانية، فكّر في مكتبة أو تنسيق يحفظ القيمة صراحةً كنص. وإذا كان CSV مطلوبًا، فاختبر تعامل التطبيق المستهدف مع القيم التي تبدأ بـ `=` أو `+` أو `-` أو `@` واختر إجراءً مناسبًا له. قد تؤثر إضافة تبويب أو فاصلة عليا في التوافق أو تغيّر القيمة الأصلية؛ لذلك ليست حلًا عامًا.

راعِ الفواصل وحدود الخلايا

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

اختبر الفتح والحفظ وإعادة الفتح

اختبر حالات حدية مثل المسافات في البداية ومحارف التحكم والفواصل وعلامات الاقتباس في برامج الجداول المستهدفة، بما في ذلك بعد الحفظ وإعادة الفتح. تحذر OWASP من أن Excel قد يزيل علامات الاقتباس أو محارف الهروب عند حفظ CSV وإعادة فتحه، مما قد يعيد تفعيل قيمة عولجت سابقًا. احتفظ ببيانات المصدر للمعالجة الآلية منفصلة عن المخرجات المعدلة للعرض في الجداول.

تنسيقات مقترحة

CSV

مناسب لـ: تبادل بيانات جدولية بسيطة عندما يتعامل المستلم مع محتوى الخلايا على أنه بيانات

أقل ملاءمة لـ: تصدير قيم غير موثوقة لفتحها في برنامج جداول دون تدابير واختبارات خاصة بالتطبيق

تحقق قبل التصدير

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

مقارنات ذات صلة

أدلة

المراجع والمواصفات