تقنية

خلية يصدرها المساعد: هل النص يبقى نصا عند فتح CSV؟

رسم توضيحي: نص مقصود: =2+3 ؛ حقل CSV؛ تفسير المستقبِل؛ رموز العبارة أو العدد 5
مخطط من إعداد بحر العلوم. تمييز تعليمي؛ لم يفتح ملف أو ينفذ تعبير

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

الخلاصة السريعة

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

  • تشرح OWASP أن الخلايا التي تبدأ بعلامة المساواة قد تفسر كصيغ عند فتح CSV في برامج مثل Excel وCalc. [1] هذا مختلف عن مجرد تقسيم الأعمدة.
  • نضع =2+3 نصا مقصودا في وصف مؤلف؛ حفظ الرموز يختلف عن حسابها إلى 5. لم ننشئ ملفا أو نشغل جدولا لإنتاج أي من العرضين.
  • تحذر OWASP من تغير الاقتباس أو الهروب في Excel بعد الحفظ وإعادة الفتح. [1] لا نعتبر نجاح قراءة أولى ضمانا لنسخة أعيد حفظها.
  • لا توجد معالجة CSV واحدة صالحة لكل برامج الجداول والمستهلكين اللاحقين وفق المصدر. [1] أي تغيير مقترح يبقى نسخة عمل موثقة، ولا نسميه حماية مختبرة.

ما المستوى الذي يفسر الرموز؟

تصف OWASP تفسير خلية تبدأ بعلامة المساواة كصيغة عند فتح CSV في برنامج جداول مثل Excel أو LibreOffice Calc. [1]

قارئ الحقول يهتم بحدود القيمة والفاصل والاقتباس. أما برنامج الجداول فقد يعطي محتوى الخلية دورا حسابيا. لذلك لا نكتفي بعبارة «الفواصل صحيحة» حين تكون المهمة إظهار نصوص للقراءة، ولا ننقل سلوك برنامج مسمى إلى كل مستورد.

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

نص حسابي أم عملية حساب؟

نؤلف قائمة عبارات لدليل تعليمي، ومن عباراتها النص =2+3. نعلن أن المطلوب في هذا الحقل نقل الرموز كما هي، لا إيجاد مجموع العددين.

لو فسرناه حسابا، فالنتيجة الرياضية 5. هذه نتيجة التعبير الذي اخترناه، وليست مخرجا شاهدناه من Excel. النص نفسه والعدد 5 إجابتان لمهمتين مختلفتين؛ ظهور عدد صحيح لا يثبت أن مهمة عرض العبارة نجحت.

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

المهمة في الورقةالمقصودما لا يثبت النجاح
نقل عبارةرموز=2+3الحصول على 5
حساب معلنالعدد 5حفظ الرموز فقط

ماذا تغير إعادة الحفظ؟

تنبه OWASP إلى أن Excel قد يزيل اقتباسا أو محارف هروب عند حفظ CSV وإعادة فتحه، وأن معالجات شائعة قد تفشل عندئذ. [1]

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

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

كيف يصف المساعد حدود الحل؟

يقرر المصدر أن لا استراتيجية معالجة عامة آمنة لكل برامج الجداول وكل المستهلكين اللاحقين. [1]

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

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

المصادر ومتابعة القراءة

  1. OWASP: CSV Injection (يفتح في نافذة جديدة)community.owasp.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.