Verwenden Sie FTP-Funktionen Safe File Uploads zur Gewährleistung

Es ist ziemlich üblich, für Web-Anwendungen, damit Benutzer Dateien für einen oder anderen Grund zu laden. Sie müssen diese Uploads sind sicher zu gewährleisten. Zum Beispiel erlauben einige Message Boards Benutzer kleine Bilder oder Avatare hochzuladen, die neben den einzelnen, die Beiträge des Benutzers angezeigt werden. Andere Anwendungen können Sie Dateien zur Analyse hochladen.

Sie könnten PHP-interne verwenden fopen () -Funktion, die einen Strom in eine Datei oder URL automatisch öffnet, die Benutzer zum Hochladen von Dateien ermöglicht. Leider ist dieses Verfahren für die Ausbeutung durch böswillige Benutzer reif, die sie nutzen können Dateien von Remote-Servern auf Ihren Webserver hochladen.

Verhindern, dass diese Art der Ausbeutung erfordert, dass Sie zwei Einstellungen zu deaktivieren, in php.ini: register_globals und url_fopen. Diese Einstellungen deaktivieren verhindert, dass Benutzer von PHP integrierten Datei-Upload, ohne dass Sie explizit diese Funktionalität zu ermöglichen.

Nachdem Sie deaktivieren diese beiden Funktionen in php.ini, Sie müssen noch Benutzer Dateien hochladen. Verwenden Sie PHP-FTP-Funktion gesetzt, eine viel sicherere Methode als fopen (), Benutzern zu ermöglichen, Dateien hochzuladen.

Sie können die FTP-Funktionen ziemlich intuitiv bedienen. Erstens schaffen Sie eine Verbindung, dann laden Sie die Dateien, die Sie brauchen, und schließlich, schließen Sie die Verbindung. Hier ist, wie die FTP-Funktionen in PHP zu verwenden:

? Lt; - // Login mit Benutzername und Passwort $ login_result = ftp_login ($ connection_id, $ ftp_username, $ ftp_password) - // überprüfen connectionif (($ connection_id php // Basisanschluss $ connection_id = ftp_connect ($ ftp_server) einrichten ) || ($ login_result)) {echo "FTP-Verbindung ist fehlgeschlagen!" - Echo "für Benutzer $ ftp_username bis $ ftp_server verbinden Versuchte" -exit-}! else {echo "Verbunden mit $ ftp_server, für ftp_username Benutzer $" -} // die Datei $ upload Upload = ftp_put ($ connection_id, $ destination_file, $ source_file, FTP_BINARY) - // überprüfen Upload statusif ($ upload!) {echo "FTP-Upload ist fehlgeschlagen!" -} else {echo "Hochgeladen $ source_file bis $ ftp_server wie $ destination_file "-} // die FTP streamftp_close ($ conn_id) ->

Hier sind die häufigsten FTP-Funktionen und ihre Argumente:

  • ftp_connect (string $ host [, int $ port [, int $ timeout]]): Eine Verbindung mit dem FTP-Server - in diesem Fall Ihren Webserver.

  • ftp_login (resource $ ftp_stream, string $ username, $ string Passwort): Senden Zugangsdaten zum FTP-Server.

  • ftp_put (resource $ ftp_stream, string $ remote_file, string $ local_file, int $ mode [, int $ startpos]): Legen Sie eine Datei aus dem lokalen Rechner auf den Server.

  • ftp_get (resource $ ftp_stream, string $ local_file, string $ remote_file, int $ mode [, int $ resumepos]): Holen Sie sich eine Datei vom Server und senden Sie es an einem lokalen Rechner.

  • ftp_close (resource $ ftp_stream): Schließen der Verbindung zu dem Server.

Sie müssen so schnell auf den FTP-Stream zu schließen, wie Sie mit it- sonst fertig sind, können Sie eine offene Verbindung haben, die Entführung verwundbar ist.

Menü