أدوات المطور · حاسبة Chmod
لماذا يجب تشغيل حاسبة chmod في متصفحك دون الحاجة إلى مكالمات الشبكة؟
· لماذا يهم
chmod يونيكس التحكم في الوصول
وضع الأذونات ليس سرًا، ولكن عادة لصق مخرجات الخادم في النماذج تشكل خطرًا. يشرح هذا المنشور ما تفعله الآلة الحاسبة الموجودة في المتصفح وما لا تحتاج إليه، وكيفية التحقق من أنها لا ترسل أي شيء.
لقد قمت للتو بلصق سطر ls -l في موقع ويب - تصف المسارات وأسماء المستخدمين وأسماء المجموعات الموجودة عليه خادمك أكثر مما كنت تقصد
إذا كانت المهمة هي التحويل، فالصق الوضع بدلاً من قائمة الخادم بأكملها. تحتوي قيمة مثل 2750 على العمليات الحسابية التي تحتاجها الآلة الحاسبة، بينما قد يحتوي السطر المنسوخ أيضًا على مسار أو مالك أو مجموعة أو طابع زمني أو أي سياق آخر غير ذي صلة. تقبل الواجهة نص الإذن الثماني أو الرمزي ولا تحتاج إلى تلك الحقول الإضافية.
يعد هذا بمثابة تقليل البيانات حسب النطاق، وليس وعدًا بأن كل تفاعل مع الصفحة يكون خاصًا. يقوم كود الآلة الحاسبة بإجراء التحليل وتحويل البت والعرض وإنشاء الأوامر في جانب المتصفح JavaScript. يصف هذا الدليل المصدر مسار التحويل فقط. ولا يحدد ما هي الطلبات أو التحليلات أو سلوك الاحتفاظ غير ذي الصلة التي قد تكون موجودة في الصفحة المنشورة.
قم بلصق الوضع فقط عندما يكون التحويل هو كل ما تحتاجه
تحتاج العملية الأساسية إلى عدد صحيح واحد يمثل اثني عشر بتًا على الأكثر. تسع بتات تصف القراءة والكتابة والتنفيذ للمالك والمجموعة وغيرهم؛ ثلاثة أخرى تمثل setuid، setgid، ولزجة. من هذه القيمة، تقوم وظائف JavaScript العادية بإنشاء طرق عرض ثماني ورمزية ولغة إنجليزية بسيطة ومربع اختيار وملخص ومعاينة الأوامر دون إرسال حمولة الوضع من الوظائف الحسابية.
كل عرض مشتق من نفس القيمة، مما يجعل التدقيق المتبادل عمليًا. بالنسبة إلى 2750، يقوم 2 بتعيين setgid، بينما لا يمنح 750 المالك rwx والمجموعة r-x وغيرهما من الأذونات. النتيجة الرمزية هي rwxr-s--- لأن تنفيذ المجموعة موجود؛ تمثل معاينة المهمة نفس القيمة مع عبارات صريحة.
التحقق من المطالبة — فتح لوحة شبكة المتصفح، باستخدام الأداة، وعدم رؤية أي طلبات تغادر الصفحة
لا يمكن لفحص المصدر إثبات سلوك الشبكة الكامل للمستند الذي تم نشره. لتقييم تلك الصفحة، افتح أدوات مطور المتصفح، وحدد لوحة الشبكة، وقم بتحميل المسار، وامسح الإدخالات السابقة إذا لزم الأمر، وقم بإجراء التحويل. لاحظ الطلبات التي تحدث بالفعل أثناء تلك الجلسة بدلاً من استنتاج الصمت من الوحدة الحسابية وحدها.
تفسير الملاحظة بدقة. تدعم قائمة الطلبات الفارغة أثناء التفاعل الذي تم اختباره بيانًا ضيقًا حول هذا التشغيل؛ ويجب الإبلاغ عن حركة الأصول المرئية أو التحليلات على هذا النحو. ولا تغير أي من النتيجتين العمليات الحسابية للآلة الحاسبة. يتمثل الاختلاف المهم بين سلوك الصفحة المنشورة الذي تم التحقق منه والحقيقة المدعومة بالمصدر وهي أن تحويل الوضع نفسه لا يحتوي على عملية طلب حمولة.
تحقق من طلبات الصفحات المنشورة بدلاً من استنتاج صمت الشبكة من الحساب
لا يتم تمثيل سياسات إنشاء الحساب والمحفوظات المحفوظة والحذف أو الاحتفاظ في مجموعة مصادر الآلة الحاسبة. تقبل وظائف الوضع القيم وترجع النص المشتق؛ ولا يقدمون دليلاً حول نظام هوية الموقع الأوسع أو ممارسات التخزين. تجنب تحويل غياب حقل الحساب في هذه الأداة إلى مطالبة شاملة بعدم التخزين.
وينطبق نفس التقييد على حالة المتصفح ورمز الطرف الثالث. يمكن أن تشير المراجعة المرتبطة بالمصدر إلى أن وحدة التحويل هي عملية حسابية خالية من التبعية وأن الأمر المعروض لا يتم تنفيذه هناك أبدًا. تتطلب المطالبات المتعلقة بملفات تعريف الارتباط أو سجلات التحليلات أو السجلات أو الزيارات المستقبلية أدلة منفصلة عن التطبيق المنشور والأنظمة الداعمة له.
مطالبات الحساب والاحتفاظ خارج مجموعة مصادر الآلة الحاسبة
لإجراء فحص ملموس، أدخل 2750 عندما تكون لوحة الشبكة الخاصة بالصفحة المنشورة مفتوحة. الحساب المتوقع واضح ومباشر: يساهم setgid بـ 2000، ويساهم المالك 7 بـ rwx، والمجموعة 5 تساهم بـ r-x، ويساهم 0 الآخرون ---. يجب أن يكون العرض الرمزي rwxr-s---، مع تمكين تنفيذ مجموعة التأكيد بالأحرف الصغيرة أيضًا.
قارن بين الحقل الثماني والصف الرمزي والتحكم في البتات الخاصة ومعاينة المهمة. إذا وافقوا، يكون التحويل متسقًا داخليًا. ثم قم بفحص إدخالات الشبكة المسجلة أثناء التفاعل واذكر فقط ما تظهره. لا يفتح الاختبار مسار نظام الملفات ولا يثبت أي شيء يتعلق بالطلبات التي تحدث خارج الجلسة المراقبة.
مثال عملي: قم بتحويل 2750 أثناء مراقبة الصفحة المنشورة
لا يمكن للآلة الحاسبة فحص ملف فعلي، أو قراءة مالكه أو مجموعته، أو تقييم قوائم ACL، أو تشغيل chmod. يخدم حقل المسار الخاص به معاينة الأمر، حيث يحمي الاقتباس المسافات والأحرف الأولية في النص المعروض. يؤدي تحديد الوضع العودي إلى إضافة علامة -R مرئية؛ ولا يجتاز دليلاً أو يغير أي كائن.
اجعل تدوين العرض مختلفًا عن تدوين الأمر. يصف النموذج المكون من تسعة أحرف مثل rwxr-s--- المواضع، في حين تستخدم الوسيطة الرمزية التي تم إنشاؤها تعيينات u= وg= وo= بالإضافة إلى جملة g+s منفصلة. كلاهما مشتق محليًا من وضع واحد، ومع ذلك لم يثبت أي منهما أن تطبيق الأمر سيكون صحيحًا لهدف حقيقي.
الخلاصة: الإدخال منخفض الحساسية لا يزال يستحق أداة عدم التحميل — تقوم حاسبة Chmod الخاصة بـ ToolAcre بالتحويل بالكامل على جهازك
يعد الحساب المحلي خاصية تصميم مفيدة لأن الإدخال يمكن أن يظل محدودًا بالقيمة التي يتم تحويلها. إنه ليس ضمانًا عالميًا للخصوصية. تحقق من المسار المنشور عندما يكون سلوك الشبكة مهمًا، وتجنب لصق المسارات أو أسماء الحسابات أو القوائم الكاملة عندما يجيب الوضع وحده على السؤال.
الاستنتاج الذي يمكن الدفاع عنه صغير عن عمد: تقوم وظائف المستودع بتحويل تدوين الوضع في المتصفح دون خطوة طلب الحمولة، ويمكن للمراقبة المباشرة للوحة الشبكة أن تصف تفاعلًا منشورًا واحدًا. تظل الملكية والتخزين والتحليلات وقوائم ACL والترخيص بمثابة تحقيقات منفصلة. الحدود الدقيقة تجعل بيان الخصوصية أقوى من الوعد غير المدعوم.