Usar las funciones ftp para asegurar la carga de archivos seguros

Es bastante común para las aplicaciones web para permitir a los usuarios subir archivos por una razón u otra. Usted necesita asegurarse de esos archivos son seguros. Por ejemplo, algunos tablones de anuncios permiten a los usuarios cargar pequeñas imágenes o avatares que se muestran junto a cada uno de los mensajes de ese usuario. Otras aplicaciones le permiten cargar archivos de datos para el análisis.

Se podría utilizar una función de PHP fopen () función, que se abre automáticamente una corriente a un archivo o URL que permite a los usuarios subir archivos. Por desgracia, este método es lista para ser explotada por usuarios maliciosos que pueden utilizarlo para cargar archivos desde servidores remotos en el servidor web.

La prevención de este tipo de explotación que requiere desactivar la configuración en dos php.ini: register_globals y url_fopen. Al desactivar estas configuraciones impide que los usuarios utilicen el archivo de carga incorporada en PHP sin que le permite explícitamente que la funcionalidad.

Después de desactivar estas funciones en dos php.ini, usted todavía necesita para permitir a los usuarios subir archivos. Utilice conjunto de funciones FTP de PHP, un método mucho más seguro que fopen (), para permitir a los usuarios subir archivos.

Puede utilizar las funciones FTP bastante intuitiva. En primer lugar, se establece una conexión, entonces subes los archivos que necesita, y, finalmente, se cierra la conexión. Aquí es cómo utilizar las funciones FTP en PHP:

? Lt;? Php // configurar la conexión básica $ connection_id = ftp_connect ($ servidor_ftp) - // inicio de sesión con nombre de usuario y contraseña $ login_result = ftp_login ($ connection_id, ftp_username $, $ ftp_password) - // comprobar connectionif (($ connection_id! ) || (! $ login_result)) {echo "conexión FTP ha fallado!"-eco "Intentado conectarse a $ servidor_ftp para el usuario $ ftp_username"-exit-} else {echo "Conectado a $ servidor_ftp, para el usuario $ ftp_username"-} // cargar el archivo de carga = $ ftp_put ($ connection_id, $ archivo_destino, $ fichero_origen, FTP_BINARY) - // comprobar carga statusif (! $ Subida) {echo "carga FTP ha fallado!"-} else {echo "Se ha cargado $ a $ servidor_ftp como $"-} // cerrar el streamftp_close FTP ($ id_con) - gt;

Estas son las funciones FTP más comunes y sus argumentos:

  • ftp_connect (cadena $ host [, int $ puerto [, int $ Tiempo de espera]]): Conectar con el servidor FTP - en este caso, el servidor web.

  • ftp_login (resource $ secuencia_ftp, string $ nombre de usuario, contraseña $ cadena): Enviar datos de acceso al servidor FTP.

  • ftp_put ($ secuencia_ftp recursos, string $ archivo_remoto, string $ archivo_local, el modo de $ int [, int $ pos_comienzo]): Poner un archivo desde la máquina local al servidor.

  • ftp_get ($ secuencia_ftp recursos, string $ archivo_local, string $ archivo_remoto, el modo de $ int [, int $ pos_continuacion]): Obtener un archivo desde el servidor y enviarlo a una máquina local.

  • ftp_close (resource $ secuencia_ftp): Cerrar la conexión con el servidor.

Es necesario cerrar la secuencia FTP, tan pronto como haya terminado con IT de lo contrario, usted tiene una conexión abierta que es vulnerable al secuestro.

Artículos Relacionados