2016-10-31 1 views
1

In meinem Code zum Hochladen von PDF-Dokumenten auf meinen Webserver habe ich move_uploaded_file verwendet.Verhindern, dass lokale Benutzer auf den Upload-Ordner zugreifen

move_uploaded_file($tmp_source, $destin) 

Dieser Befehl funktioniert jedoch nicht, wenn ich 777 Zugriff auf den Upload-Ordner gebe. Ich habe versucht, es 775 zu machen, aber es würde nicht funktionieren.

bekomme ich folgende Fehlermeldung

failed to open stream: Permission denied in /srv/http/host1/public_html/internal/upload.php on line 82 

Durch die Upload-Ordner über public_html setzen, kann ich verhindern, dass Menschen von ihnen über einen Browser zugreifen, aber wie kann ich lokale Benutzer den Zugriff auf diesen Ordner über ssh verhindern?

+0

'775' oder' 755' Berechtigungen sollten funktionieren, wenn Sie den Eigentümer oder die Gruppe des Uploads-Ordners auf 'www-data' setzen. – Barmar

+0

@Barmar Es gibt keinen solchen Benutzer auf meinem Computer. Es ist eine Arch-Installation. –

+0

Verwenden Sie den Benutzernamen, der den Webserver ausführt. – Barmar

Antwort

0

Einige auf diese Frage im Zusammenhang Antwort hatte vorgeschlagen, den Benutzer auf, die die Ordner-Upload mit

ps aux | grep apache 

, um herauszufinden, 0755. Diese Information ist nicht für mich arbeitete entsprechende Berechtigungen zu erteilen.

Die korrekte Information war jedoch in phpinfo() unter der apache2handler Kopfzeile verfügbar. Es war http.

Unter anderem habe ich die Dateitypen auf pdf beschränkt, habe .htaccess auf cgi beschränkt und auch den Upload-Ordner außerhalb von public_html gehalten, um den Zugriff über den Browser zu verhindern.

Mir sind keine weiteren Sicherheitsbedenken bekannt.

Verwandte Themen