التنقيح ليس مستطيلاً أسود
Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5
لمحة سريعة
قسم بعنوان «لمحة سريعة»المستطيل الأسود المرسوم فوق اسم لا يخفي شيئاً. تبدو الصفحة منقَّحة، لكن النص تحته لا يزال هناك، لا يزال قابلاً للتحديد، لا يزال قابلاً للنسخ. التنقيح الحقيقي لا يغطي المحتوى. بل يحذفه.
تشرح هذه الصفحة الفجوة بين التراكب التجميلي والإزالة الحقيقية للمحتوى، ولماذا تنجو البيانات الوصفية والملفات المُضمَّنة من عمل ساذج، وكيف يرفض RedactionEngine المؤسسي في NextPDF التظاهر بأن منطقة قد زالت حين لا يستطيع إزالتها فعلاً.
لماذا يهم هذا
قسم بعنوان «لماذا يهم هذا»أشهر خروقات بيانات PDF لم تكن هجمات بارعة. كانت مستطيلات سوداء. رسم أحدهم مربعاً مملوءاً فوق فقرة حساسة، وصدّر الملف، وشحنه. ضغط المتلقي المربع، وسحب عبره، فنُسِخت الكلمات الأصلية مباشرةً من المستند إلى الحافظة.
السبب بنيوي. صفحة PDF مجموعة مشغّلات رسم مطبَّقة بترتيب. رسم مستطيل معتم يضيف مشغّلاً واحداً فوقها؛ لا يزيل مشغّل إظهار النص تحته. للعين، النص مخفي. للآلة، هو بالضبط حيث كان دائماً. التراكب زيّ، والزيّ يُنزَع.
هذا مكلف لأن الإخفاق صامت ونهائي. يبدو المستند صحيحاً، ويجتاز مراجعة بصرية، ويُنشَر. ويُكتشَف التسرّب لاحقاً بمن حدّد النص، وبحلول ذلك تكون كل نسخة قد خرجت بالفعل.
الخلاصة المختصرة
قسم بعنوان «الخلاصة المختصرة»- المربع الأسود عملية رسم مطبَّقة فوق النص، لا حذف له. تنجو البايتات.
- ينجو النص القابل للتحديد لأن دفق محتوى الصفحة لا يزال يحمل المحارف التي ترسم الكلمات.
- تنجو البيانات الوصفية للمستند لأنها تستقر في موضع منفصل — قاموس معلومات المستند وحزمة XMP — لا يستطيع أي مستطيل على صفحة بلوغه.
- تنجو الملفات المُضمَّنة لأن ملف PDF يمكنه حمل ملفات كاملة بداخله أدفاق ملفات مُضمَّنة. Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11 العلامة على صفحة لا تمسّ مرفقاً أبداً.
- التنقيح الحقيقي مُتلِف. يزيل المحتوى من دفق البايتات، لا من الصورة. ما زال زال، وتُنظَّف أسطح الرواسب أيضاً.
كيف يتعامل NextPDF مع هذا
قسم بعنوان «كيف يتعامل NextPDF مع هذا»تجميلي مقابل مُتلِف، بدقة
قسم بعنوان «تجميلي مقابل مُتلِف، بدقة»يغيّر التراكب التجميلي ما تبدو عليه صفحة. ويغيّر التنقيح المُتلِف ما يحتويه المستند. الأول عكوس لأي شخص بمؤشر نص. والثاني لا يترك شيئاً يُستردّ.
بُني RedactionEngine المؤسسي في NextPDF للحالة المُتلِفة على مستوى محتوى النص. تأخذ دالة redact() فيه المحتوى، وRedactionPolicy يصف ما يُبحَث عنه وكيف يُستبدَل، وتعيد RedactionResult. في الداخل، تكتشف النطاقات الحساسة، وتضمّ أي نطاقات متداخلة في نطاقات تغطية منفصلة، ثم تعيد كتابة سلسلة المحتوى بـsubstr_replace كي يُزال كل بايت مُغطّى مرة واحدة بالضبط. النص الحساس ليس مرسوماً فوقه. بل زال من المخزن المؤقت الذي تعيده النتيجة.
النتيجة صادقة بشأن ما حدث: تسجّل تجزئة SHA-256 للمحتوى الأصلي، وredactedContent المُعاد كتابته، وتقرير تدقيق لكل اكتشاف، وعَلَم wasModified. يمكنك إثبات أن البايتات تغيّرت، ويمكنك إثبات أيها.
الرواسب التي عليك مطاردتها
قسم بعنوان «الرواسب التي عليك مطاردتها»إزالة النص المرئي ضرورية لكنها غير كافية. الكلمات نفسها، وكلمات لم ترها قط على الصفحة، تختبئ في أماكن لا يبلغها تحرير على مستوى الصفحة أبداً.
يحمل المستند بيانات وصفية مرتين: قاموس معلومات قديم وحزمة XMP، يمكن لأيٍّ منهما حمل اسم مؤلف، أو عنوان، أو بصمة أداة. يمكنه حمل ملفات كاملة أدفاق ملفات مُضمَّنة. Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11 يمكنه ربط تلك الحمولات ببنية الصفحة ملفاتٍ مرتبطة، قناة أثرٍ-مرتبط لا تعرضها الصفحة لكن المستند لا يزال يحملها. Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5 لا شيء من هذه على الصفحة التي نقّحتها، فلا شيء منها يمسّه مستطيل. الإرشاد الكلاسيكي حول هذا — تقرير وكالة الأمن القومي “البيانات والبيانات الوصفية الخفية في ملفات Adobe PDF” — موجود تحديداً لأن تسرّبات حقيقية كثيرة جاءت من الرواسب، لا من الصفحة المرئية.
التنقيح الذي يحذف الكلمات على الصفحة لكنه يترك اسم المؤلف في حزمة XMP وجدول البيانات الأصلي مرفقاً لم ينقّح المستند. بل نقّح عرضاً واحداً منه.
- DetectFind every sensitive span — visible text, and the entity types a policy targets — not just the region you happen to see.
- Delete, do not coverRewrite the content stream so the glyphs are removed from the bytes. An opaque box on top leaves the text underneath intact.
- Clear the residueStrip the information dictionary and XMP metadata, and remove embedded and associated files that carry the same payload off-page.
- VerifyConfirm no selectable text, metadata field, or attachment reproduces the redacted content before the file leaves the building.
الفشل مغلقاً بدلاً من تزييفه
قسم بعنوان «الفشل مغلقاً بدلاً من تزييفه»ثمة طريقتان للتنقيح: بـالمحتوى (اعثر على هذا الاسم، احذفه) وبـالمنطقة (اطلِ هذا المستطيل من الصفحة، أياً كان تحته). يؤدي المحرك المؤسسي الأولى بصدق. وهو لا يتظاهر عمداً بأداء الثانية.
تقبل دالة redact() وسيطة ثالثة، قائمة من مناطق إحداثيات ZoneRedaction. لا يملك محرك محتوى النص مَصرَفاً لتراكب محتوى الصفحة — لا طريقة لإزالة ما يقع داخل مربع إحداثيات فعلاً. لذا حين تكون تلك القائمة غير فارغة، فهو لا يرسم مستطيلاً ويسمّي المنطقة “منقَّحة”. بل يرمي RuntimeException مصنَّفاً ويخبرك بتوجيه المنطقة عبر خط أنابيب تنقيح محتوى-صفحة بدلاً من ذلك.
ذلك الرفض هو كل مقصود هذه الصفحة محوَّلاً إلى شيفرة. يفضّل المحرك التوقف وتسمية ما لا يستطيعه على إعادة اكتشاف “منقَّح” لمنطقة تركها سليمة تماماً. التراكب التجميلي الصامت المُبلَّغ عنه بوصفه إزالة هو التأكيد الزائف نفسه الذي ينتج خرقاً. الفشل مغلقاً يحوّل ذلك الخرق إلى رسالة خطأ تراها قبل الشحن.
مفهوم خاطئ شائع
قسم بعنوان «مفهوم خاطئ شائع»“رسمتُ مربعاً أسود فوقه، فهو منقَّح.”
هذا هو الفخ، وهو الأكثر شيوعاً في التنسيق كله. المستطيل المملوء تعليمة رسم مرصوصة فوق النص. لا تزال مشغّلات إظهار النص في دفق المحتوى، ولا تزال المحارف ترسم، والتحديد أو النسخ يقرؤها دون تغيير. أخفيت صورة؛ لم تغيّر مستنداً.
فخ ثانٍ أدقّ: “حذفتُ النص على الصفحة، فالمستند نظيف.” ليس بعد. المحتوى نفسه، ومحتوى لم تعرضه قط، يمكن أن يستمر في البيانات الوصفية وفي الملفات المُضمَّنة. لا ينتهي التنقيح إلا حين يخلو كل سطح — محتوى الصفحة، والبيانات الوصفية، والمرفقات — مما عزمت على إزالته.
الحدود والقيود
قسم بعنوان «الحدود والقيود»النطاق الصادق لما يفعله NextPDF هنا، بحسب الإصدار:
- النواة لا تملك تنقيح مستند على الإطلاق. تشحن مُنقّي خصوصية لمعلومات تعريف الهوية في سجل التدقيق — إبقاء القيم الحساسة خارج سجلاتك التشخيصية — وهذا شيء مختلف تماماً عن تنقيح ملف PDF مُسلَّم. إن كنت على النواة واحتجت إلى تنقيح مستند، فالقدرة التي تريدها غير موجودة. لا ترسم مربعاً وتفترض أن المحرك أزال شيئاً.
- يُنقّح
RedactionEngineالمؤسسي محتوى النص، إتلافاً. يعيد كتابة مخزن المحتوى المؤقت لإزالة البايتات الحساسة ويبلّغ عن تجزئة، وتقرير تدقيق، وعَلَمwasModifiedكي تكون الإزالة قابلة للإثبات. - تنقيح منطقة الإحداثيات يفشل مغلقاً. مرّر قائمة
ZoneRedactionغير فارغة فيرمي المحرك بدلاً من تزييف تراكب. تلك خاصية أمان متعمَّدة، لا ميزة ناقصة: المنطقة التي لا يستطيع تنظيفها حقاً هي منطقة يرفض تسميتها نظيفة. - تنظيف كل سطح رواسب مسؤولية المُشغِّل أيضاً. إزالة النص المرئي خطوة واحدة. العمل الكامل يجرّد أيضاً قاموس المعلومات، وحزمة XMP، وأي ملفات مُضمَّنة أو مرتبطة (Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11، Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5) تحمل الحمولة نفسها خارج الصفحة.
| Edition | Availability |
|---|---|
| Core | ليس في هذا الإصدار. النواة لا تملك تنقيح مستند. توفّر فقط مُنقّي معلومات تعريف الهوية في سجل التدقيق، الذي يُبقي القيم الحساسة خارج سجلاتك التشخيصية — لا يُنقّح ملف PDF مُسلَّماً. |
| Pro | Not in this edition |
| Enterprise | متاح. يؤدي RedactionEngine المؤسسي تنقيح محتوى نص مُتلِفاً ويفشل مغلقاً — يرمي استثناءً مصنَّفاً — على تنقيح منطقة الإحداثيات الذي لا يستطيع الوفاء به حقاً، بدلاً من رسم تراكب تجميلي والإبلاغ عن منطقة بوصفها مُزالة. |
مستندات ذات صلة
قسم بعنوان «مستندات ذات صلة»- كيف يعمل تشفير PDF فعلاً — لماذا لا يكون تشفير ملف كإزالة محتوى منه، وأين يحميك كلٌّ منهما.
- البيانات الوصفية وحزمة XMP — سطح الرواسب الذي لا يمسّه تنقيح على مستوى الصفحة أبداً، بالتفصيل.
- واجهة برمجية ترفض التخمين — موقف الفشل-مغلقاً نفسه الذي يطبّقه محرك التنقيح على منطقة لا يستطيع الوفاء بها.
مسرد المصطلحات
قسم بعنوان «مسرد المصطلحات»- التراكب التجميلي — عملية رسم، كمستطيل مملوء، مطبَّقة فوق محتوى لإخفائه بصرياً. لا يزيل المحتوى تحته، الذي يبقى قابلاً للتحديد والنسخ.
- التنقيح المُتلِف — إزالة المحتوى من دفق بايتات المستند، لا من الصورة. بمجرد إتمامه، لا شيء تحته يُستردّ.
- دفق المحتوى — القائمة المرتَّبة من مشغّلات الرسم التي تعرض صفحة، بما فيها مشغّلات إظهار النص التي ترسم المحارف. المربع فوقها لا يحذف مشغّلات النص تحته.
- سطح الرواسب — موضع يحتفظ فيه مستند بمحتوى لا تعرضه الصفحة: قاموس المعلومات، وحزمة بيانات XMP الوصفية، والملفات المُضمَّنة أو المرتبطة. التنقيح الكامل ينظّفها كلها.
- دفق الملف المُضمَّن — ملف كامل محمول داخل ملف PDF (ISO 32000-2 §7.11). العلامة على صفحة لا تمسّ مرفقاً أبداً.
- الفشل مغلقاً — التوقف بخطأ مصنَّف حين لا يمكن أداء عملية بصدق، بدلاً من إنتاج نتيجة معقولة المظهر لكنها خاطئة. يفعل المحرك المؤسسي هذا لتنقيح منطقة الإحداثيات الذي لا يستطيع الوفاء به.