Ola, somos Arume

Desenvolvemos páxinas web, aplicacións para móbiles, capas de realidade aumentada e aplicacións para Facebook. Apaixónanos a informática e somos uns perfeccionistas incurables; por eso nos nosos proxectos utilizamos estándares.

tel. 625 519 694

Mendaña de Neyra, 34, 3º B, 15008, A Coruña

Autenticarse

Rexistrarse. Esqueceches o teu contrasinal?

Etiquetas

Saltar as etiquetas

Subscríbete ás RSS

Estás en:

Directivas PHP: safe_mode

04 Xul 2011 por Jose

Comentarios: 1

PHP

Di a documentación oficial de PHP que a directiva safe_mode é un intento de resolver un problema de seguridade en servidores compartidos. E aínda que si mellora a seguridade non resulta unha práctica infalible, xa que leva a moitos provedores de Internet (ISP) e programadores a pensar que están a salvo de ameazas de seguridade. Isto non debe ser do todo certo cando a comunidade PHP a declarou obsoleta na versión 5, e non estará presente na versión 6.

Como aumenta safe_mode a seguridade?

Ca directiva safe_mode activada PHP comproba que o usuario actual é o propietario (UID) dos ficheiros e directorios ós que desexa acceder cada script, isto é verdadeiramente útil cando traballamos con servidores compartidos, posto que se un script sobe un arquivo a un servidor compartido, xeralmente é gardado co usuario web por defecto ("apache", "httpd", ...), polo que sen a comprobación de usuario calquera aplicación do servidor compartido podería acceder ó noso ficheiro.

Esta directiva tamén restrinxe o uso de executables que poidan correr os scripts no noso sistema, o que afecta ás funcións sytem(), exec() e shell_exec() entre outras.

Un exemplo dos problemas que pode traer o safe_mode activado é en sistemas Linux, porque como dixemos ó crear un directorio créase co usuario de Apache, polo que un usuario do sistema non terá acceso ó directorio, nin ós arquivos dentro deste.

Hai unha serie de axustes que nos axudan a traballar con safe_mode activado e superar as súas limitacións, estes son:

safe_mode_gid

Nalgúns casos pode resultar útil que o modo seguro comprobe unicamente os permisos de grupo no arquivo (GID), neste caso deberemos activar a directiva.

safe_mode_include_dir

Definimos un directorio no que os seus arquivos considéranse seguros para o equipo, polo que non necesitaremos comprobar o UID para traballar con eles.

safe_mode_exec_dir

Neste directorio estarán os programas que poderán ser executados con safe_mode activado. Se este directorio non está establecido as chamadas ás funcións sytem() ou exec() fallarán. A función shell_exec() non está dispoñible con safe_mode activado.

Hai que ter tamén en conta que, con safe_mode habilitado, a cadea de comandos que se lle pasa a estas funcións escápase automaticamente con escapeshellcmd().

safe_mode_allowed_env_vars

Define unha lista de variables de contorna que o usuario poderá cambiar. Se non está establecido, todas as variables poden ser editadas.

Existe outra directiva de PHP que nos permite asignar unha seguridade de acceso ós nosos ficheiros e directorios, open_basedir, que activada limita as operacións que se poden realizar nos directorios configurados, e non depende do estado de safe_mode.

Comentarios

1 comentarios. Comentar.

1. Anónimo o 24 Out 2013 ás 08:30:13

Muchas gracias. Estaba dudando si activarlo o no. Finalmente lo activaré porque no quiero permitir que un php pueda cambiar el time limit

Comentar

Comentar de forma anónima

Podes comentar poñendo calquera nome ou alcume, exceptuando os nomes de usuarios rexistrados. Máximo de 50 caracteres.

Comentar como usuario rexistrado

Rexistrarse. Esqueceches o teu contrasinal?