Kullanıcıların resim yüklemelerini ve daha sonra tekrar indirmeleri için dönüştürmelerini sağlayan bir web uygulaması geliştirdim. Açıkçası, kullanıcıların yükleyebileceği dizine apache kullanıcı izinleri vermek zorunda kaldım:
$ chown root:www-data uploadFolder
$ chmod 1775 uploadFolder
Bu, apache grubuna kaldırma dışında tüm izinleri verir.
Uygulama içindeki her kullanıcı oturumu için bir dizin oluşturur uploadFolder
ile dizindeki 0700
izinleri ve içeride kullanıcının görüntüleri kaydeder.
uploadFolder
Uygulama dizininde içindedir.
Resim yüklendiğinde, müşteriye doğrudan (bir bağlantı gibi) sunulur.
Bir crontab işi, her 20 dakikada bir komut dosyası yürütüyor, hangi oturumların etkin olduğunu kontrol ediyor ve içindeki uploadFolder
herhangi bir etkin oturumla uyuşmayan tüm dosya ve klasörleri kaldırıyor .
İki aydan beri iyi çalışıyor, ancak aynı VPS'deki uygulamam, veritabanı veya diğer siteler için tehlikeli olup olmadığından emin değilim.
Bu durumda izin verilme riskini bilen var mı?
Bunu önlemek için herhangi bir alternatif var mı?
Bu benim apache site yapılandırmam:
<VirtualHost *:80>
ServerName www.itransformer.es
ServerAlias itransformer.es *.itransformer.es
DocumentRoot /siteFolder
<Directory /var/www/itransformer-2.0/web>
AllowOverride all
Options -Indexes
</Directory>
</VirtualHost>
Bu pasaj kodunu Apache site yapılandırmasına eklendi: (bu, .htaccess
dosyaları okumaktan kaçınmalıdır )
<Directory /uploadFolder>
AllowOverride none
Options -Indexes
</Directory>