php scriptler olmayan dünya yazılabilir dosyalarına yazma

3 Cevap php

Nasıl bir php betik gibi sadece tek bir kullanıcı bunu yazmak için izin olarak, yüksek güvenlik kısıtlamaları ile bir dosyaya yazmak için izin verebilirsiniz?

Zorluk (? Belki apache veya www, ya da kimse) bir php script düşük-izinleri kullanıcı olarak çalışan bu gibi görünüyor, ve ben apache the_writable_file, bu öyle dizin chown bile düşük seviyede yazılabilir olmayabilir kullanıcı. Genel olarak, php güvenli bir şekilde yerel dosyaları ile çalışabilirsiniz olağan yolu nedir?

3 Cevap

Ne yazık ki, kullanmak paylaşılan hosts mod_php, there is no way to restrict access web uygulaması ve giriş kullanıcıya dosyaları güvenli.

Çözelti, run your web app as your login user etmektir. Bunu yaptığınızda, UNIX dosya izinlerinin doğru herkes kilitleyebilir. SuExec dahil suPHP, ya da mod_fcgid veya mod_proxy_fcgid ile FastCGI PHP çalıştıran uygulamak için çeşitli yollar vardır. FastCGI benim favori yoludur.

Başka bir çözüm, özel bir ana bilgisayar veya sanal özel sunucu kullanmaktır.

Tabii, chgrp apache the_writable_file ve chmod g+w the_writable_file. Bundan sonra, sizin güvenli kullanıcı ve apache kullanıcı sadece dosyasına yazmak mümkün olacak. Apache kullanıcı tipik giriş yasak olduğundan, yalnızca http daemon aracılığıyla kullanarak güvenli dosya yazma web kullanıcılarına hakkında endişelenmenize gerek.

Tüm içeren klasörler yürütme izinleri olması gerekir.

Örneğin, dosyanın içinde /foo/bar/the_writable_file, dizinleri "foo" ve "bar" hem de okuma / yazma izni var olmasa bile, the_writable_file erişim çalıştırılabilir izni olması gerekiyorsa.