إثبات الخصوصية: تحققوا بأنفسكم
تَعِد مواقع كثيرة بحذف ملفاتكم بعد المعالجة. أما TwoDocument فلا يستلمها أصلًا. لا تصدّقوا كلامنا فحسب: إليكم كيفية التحقق من ذلك في بضع دقائق.
ما تتبادله هذه الصفحة، مباشرةً
يقرأ متصفحكم الملف لحساب بصمته. راقبوا عدّاد «المُرسَلة»: إنه لا يتحرك.
قاعدة الأمان المستلمة مع هذه الصفحة: connect-src 'self' blob: data:. وهي تمنع الصفحة من إرسال أي شيء إلى موقع آخر غير twodocument.com.
تحققوا بأنفسكم
- الاختبار 1، وضع الطيران (هاتف أو حاسوب). افتحوا أداة، مثل «ضغط»، وعالجوا ملفًا أول غير مهم: يحتفظ متصفحكم حينها بما يلزم لهذه الأداة.
- اقطعوا أي اتصال: وضع الطيران على الهاتف، وإيقاف Wi-Fi وفصل الكابل على الحاسوب.
- عالجوا الآن مستندكم الحقيقي، ثم نزّلوا النتيجة. كل شيء يعمل دون إنترنت: لا حاجة إلى أي خادم للمعالجة.
- الاختبار 2، تبويب «الشبكة»، على Chrome أو Edge (حاسوب). افتحوا الأداة، ثم اضغطوا على F12 أو Ctrl+Shift+I (Cmd+Option+I على Mac) واختاروا تبويب «Network» (الشبكة). افعلوا ذلك قبل اختيار ملفكم: لا يسجّل التبويب إلا ما يحدث أثناء فتحه.
- على Firefox: اضغطوا على Ctrl+Shift+E (Cmd+Option+E على Mac) لفتح تبويب «الشبكة» مباشرةً.
- على Safari (Mac): في Safari، الإعدادات، متقدم، فعّلوا «إظهار ميزات مطوري الويب». ثم افتحوا مفتش الويب من قائمة «المطوِّر» واختاروا تبويب «الشبكة».
- اختاروا ملفكم وابدأوا المعالجة. تُظهر القائمة تنزيلات قادمة من twodocument.com (صفحات، ونصوص برمجية، ومكتبات، وخطوط)، وأحيانًا طلبًا صغيرًا باسم «stat». انقروا عليه: محتواه سطر واحد، مثل {"e":"traite","c":"compresser"}. هذا هو الإرسال الوحيد، وملفكم ليس فيه. أما الأسطر التي تبدأ بـ «blob:» أو «data:» فهي بيانات أُنشئت على جهازكم، وليست عمليات إرسال.
- لقراءة قاعدة الأمان: في تبويب «الشبكة» دائمًا، أعيدوا تحميل الصفحة، وانقروا على السطر الأول (الصفحة نفسها) وابحثوا عن «content-security-policy» في ترويسات الاستجابة. ستقرؤون فيها خصوصًا connect-src 'self' blob: data:.
قاعدة الأمان الخاصة بالصفحة
تصل كل صفحة من TwoDocument مع قاعدة أمان تُسمّى Content-Security-Policy، يطبّقها متصفحكم. وهي تتضمن connect-src 'self': لا يمكن لبرامج الصفحة تبادل البيانات إلا مع twodocument.com. ولو حاولت الصفحة إرسال شيء إلى موقع آخر، عبر fetch أو XMLHttpRequest أو sendBeacon، لحظره المتصفح. ولا يمكن للبرامج نفسها أن تأتي إلا من twodocument.com (script-src 'self').
لذا تمنع هذه القاعدة ملفكم من الذهاب إلى موقع طرف ثالث. وللتحقق من أنه لا يذهب أيضًا إلى twodocument.com، راقبوا تبويب «الشبكة»: عمليات الإرسال الوحيدة موصوفة أدناه، ولا يحتوي أي منها على مستندكم.
ما يُرسل، لا أكثر ولا أقل
عدّاد مجهول الهوية. عند كل صفحة معروضة وكل مستند يُعالَج أو يُنزَّل، ترسل الصفحة إلى twodocument.com/api/stat نوع الحدث واسم الأداة، مثل «مستند واحد مضغوط». لا ملفات تعريف ارتباط، ولا مُعرّف. لا يسجّل العدّاد عنوان IP الخاص بكم، ولا اسم ملفاتكم ولا محتواها.
عنوان بريدكم الإلكتروني، فقط إذا أنشأتم حسابًا أو سجّلتم في قائمة الانتظار لبريميوم. وإذا سجّلتم الدخول باستخدام Google أو Microsoft أو Facebook، تتحقق هذه الخدمة من هويتكم ثم تنقل عنوانكم إلى TwoDocument.
لا يُرسل الملف نفسه أبدًا. وكما في أي موقع، يُنزّل متصفحكم الصفحات والبرامج من مستضيفنا Cloudflare: وهذه تنزيلات إلى جهازكم، وليست إرسالًا لمستنداتكم.
دون اتصال، يستمر كل شيء
بمجرد فتح أداة، يحتفظ متصفحكم بما يلزم: الصفحات، والبرامج، والمكتبات. ويمكنكم حينها قطع الإنترنت، وستستمر الأدوات المفتوحة مسبقًا على هذا الجهاز في العمل. أما الخدمة التي ترسل ملفاتكم إلى خادم فلا يمكنها العمل في وضع الطيران.
تُحفظ الملفات التي تُنشئونها 7 أيام في «ملفاتي»، في مساحة تخزين متصفحكم، على جهازكم. ولا تُنقل أبدًا. ويؤدي مسح بيانات الموقع في متصفحكم إلى محوها.
حالة أدوات الذكاء الاصطناعي: «تلخيص» و«ترجمة»
تستخدم هاتان الأداتان الذكاء الاصطناعي المدمج في Google Chrome. في المرة الأولى، يتولى Chrome نفسه، وليس الصفحة، تنزيل نموذجه. بعد ذلك، ووفقًا لوثائق Chrome للمطورين، يعمل النموذج على حاسوبكم، دون اتصال، ولا تُرسل أي بيانات إلى Google ولا إلى طرف ثالث عند استخدامه. ولا يُرسل مستندكم إلى TwoDocument أيضًا.
مكتبات حرة، بشيفرة مصدرية علنية
يُنجَز العمل بواسطة مكتبات مفتوحة المصدر معروفة، تُقدَّم من twodocument.com بنسخ ثابتة. شيفرتها المصدرية علنية: يمكن لأي شخص التحقق مما تفعله.
الخطوط المستخدمة في التحويلات (Carlito، Caladea، Liberation Sans، Tinos، Cousine، Gelasio، Noto وغيرها) حرة، بترخيص SIL Open Font License.
المكتبات المستخدمة
| المكتبة | الدور | الترخيص |
|---|---|---|
| PDF.js (Mozilla) | قراءة ملفات PDF وعرضها، واستخراج نصوصها | Apache-2.0 |
| pdf-lib | إنشاء ملفات PDF وتعديلها (الدمج، الصفحات، العلامة المائية، النماذج، التوقيع) | MIT |
| QPDF | تشفير ملفات PDF (AES-256) وإزالة حمايتها وإصلاحها | Apache-2.0 |
| qpdf-wasm | نسخة من QPDF مُصرَّفة إلى WebAssembly للمتصفح | ISC |
| Tesseract.js | التعرف على نص الصفحات الممسوحة ضوئيًا (OCR)، بالفرنسية والإنجليزية | Apache-2.0 |
| JSZip | إنشاء أرشيفات ZIP وقراءة ملفات Word و Excel و PowerPoint | MIT أو GPL-3.0 (حسب الاختيار) |
| docx-preview | تنسيق مستندات Word قبل تحويلها | Apache-2.0 |
| PptxGenJS | إنشاء ملفات PowerPoint | MIT |
| fontkit (نسخة pdf-lib) | قراءة الخطوط لتضمينها في ملفات PDF | MIT |