البرامج النصية php الكتابة إلى غير العالم-ملفات للكتابة

StackOverflow https://stackoverflow.com/questions/34015

  •  09-06-2019
  •  | 
  •  

سؤال

كيف تسمح PHP النصي للكتابة إلى ملف مع القيود ، مثل السماح فقط مستخدم واحد أن أكتب ذلك ؟

صعوبة يبدو أن هذا السيناريو PHP يتم تشغيل منخفضة أذونات المستخدم (ربما أباتشي ، أو www, أو لا أحد؟), و حتى لو كنت chown أباتشي the_writable_file الدليل انها قد لا تكون قابلة للكتابة عن انخفاض مستوى المستخدم.عموما, ما هي الطريقة المعتادة التي PHP يمكن أن تعمل مع الملفات المحلية بطريقة آمنة ؟

هل كانت مفيدة؟

المحلول

للأسف, في المضيفين المشتركة التي تستخدم mod_php, لا توجد وسيلة لتقييد الوصول تأمين الملفات الخاصة بك على شبكة الإنترنت التطبيق المستخدم تسجيل الدخول.

الحل هو تشغيل تطبيق ويب الخاص بك المستخدم تسجيل الدخول.عندما تفعل ذلك, UNIX ملف الأذونات بشكل صحيح قفل الجميع بها.هناك عدة طرق لتنفيذ ذلك ، بما في ذلك SuExec, suPHP, أو تشغيل PHP مع FastCGI مع mod_fcgid أو mod_proxy_fcgid.FastCGI هي الطريقة المفضلة.

حل آخر هو استخدام مجموعة مخصصة أو الخادم الافتراضي الخاص.

نصائح أخرى

بالتأكيد ، chgrp apache the_writable_file و chmod g+w the_writable_file.بعد ذلك فقط الخاص بك آمنة المستخدم أباتشي وسوف يكون المستخدم قادرا على الكتابة إلى الملف.منذ أباتشي المستخدم عادة ممنوع من الدخول ، أنت فقط لديك ما يدعو للقلق على شبكة الإنترنت للمستخدمين الكتابة إلى ملف آمن من خلال استخدام http الخفي.

جميع المجلدات التي تحتوي على الحاجة إلى تنفيذ الأذونات.

على سبيل المثال, إذا كان الملف في /foo/bar/the_writable_file, فإن الدلائل "فو" و "بار" على حد سواء تحتاج إلى أن يكون قابل للتنفيذ إذن للوصول إلى the_writable_file ، حتى لو لم يكن لديك إذن القراءة/الكتابة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top