Hosting de Calidad
  • Inicio
  • Precios y servicios
  • F.a.q y ayudas
  • Realizar pedido
  • Webs alojadas
  • Quienes somos
  • Foro HyD
  • Contacto

    Zona Dominios

    Entrar
    registro de dominios


    Zona Hosting

    Entrar
    alojamiento web


    5 Métodos de Pago
    Tarjeta de crédito
    Domiciliación
    Transferencia
    Soporte Epagado
    Soporte Paypal

    Liberalización .es

    Ver mas
    dominios .es


  •  
     
     
    Modo Seguro (Safe Mode)

    Capítulo 22_ Modo Seguro (Safe Mode)

    El Modo Seguro de PHP es un intento para resolver el problema de la seguridad en un servidor compartido_ Tratar de resolver este problema al nivel de PHP es arquitectónicamente incorrecto, pero ya que las alternativas en un servidor web y a niveles de sistemas operativos no son tan realistas, mucha gente, especialmente la de proveedores de Internet (ISP), usa el Modo Seguro por ahora_

    Tabla 22_1_ Las directivas de Configuración que controlan el Modo Seguro son:

    DirectivaValor por Omisión
    safe_mode Off
    safe_mode_gid 0
    safe_mode_include_dir ""
    safe_mode_exec_dir 1
    open_basedir ""
    safe_mode_allowed_env_vars PHP_
    safe_mode_protected_env_vars LD_LIBRARY_PATH
    disable_functions ""

    Cuando safe_mode está en On, el PHP verifica si el dueño del script actual coincide con el dueño del fichero a ser operado por una función de fichero_ Por ejemplo:
    _rw_rw_r__    1 rasmus   rasmus       33 Jul  1 19:20 script_php 
    _rw_r__r__    1 root     root       1116 May 26 18:01 /etc/passwd
    Corriendo este script_php
    <?php
     readfile('/etc/passwd'); 
    ?>
    resulta in este error cuando Modo Seguro está habilitado:
    Warning: SAFE MODE Restriction in effect_ The script whose uid is 500 is not 
    allowed to access /etc/passwd owned by uid 0 in /docroot/script_php on line 2

    Sin embargo, pueden haber ambientes donde una estricta verificación del UID no es apropiada, y una relajada verificación del GID es suficiente_ Esto es soportado por medio del switch safe_mode_gid_ Seteándolo a On hace la verificación relajada GID, seteándolo a Off (el valor por omisión) hace la verificación del UID_

    Si en vez del safe_mode, Ud_ setea un directorio open_basedir, entonces todas las operaciones de fichero estarán limitadas a los ficheros bajo ese directorio especificado_ Por ejemplo (ejemplo de httpd_conf de Apache):
    <Directory /docroot>
      php_admin_value open_basedir /docroot 
    </Directory>
    Si Ud_ corre el mismo script_php con este seteo open_basedir, entonces este es el resultado:
    Warning: open_basedir restriction in effect_ File is in wrong directory in 
    /docroot/script_php on line 2

    Ud_ también puede inhabilitar funciones individuales_ Note que la directiva disable_functions no puede ser usada fuera del fichero php_ini lo que significa que Ud_ no puede inhabilitar funciones en los principios per_virtualhost o per_directory en su fichero httpd_conf_ Si agregamos esto a nuestro fichero php_ini:
    disable_functions readfile,system
    Entonces obtenemos esta salida:
    Warning: readfile() has been disabled for security reasons in 
    /docroot/script_php on line 2

    Funciones restringidas/inhabilitadas por Modo Seguro

    Esta es una lista probablemente incompleta y posiblemente incorrecta de las funciones limitadas por safe mode_

    Tabla 22_2_ Funciones limitadas por Modo Seguro

    FunciónLimitaciones
    dbmopen()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    dbase_open()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    filepro()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    filepro_rowcount()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    filepro_retrieve()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    ifx_*()restricciones sql_safe_mode, (!= safe mode)
    ingres_*()restricciones sql_safe_mode, (!= safe mode)
    mysql_*()restricciones sql_safe_mode, (!= safe mode)
    pg_loimport()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    posix_mkfifo()Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    putenv()Obecede las ini_directivas safe_mode_protected_env_vars y safe_mode_allowed_env_vars_ Vea también la documentación de putenv()
    move_uploaded_file()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    chdir()Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    dl()Esta función no está habilitada en safe_mode (modo_seguro)
    backtick operatorEsta función no está habilitada en safe_mode (modo_seguro)
    shell_exec() (equivalencia funcional de backticks)Esta función no está habilitada en safe_mode (modo_seguro)
    exec()Ud_ puede correr sólo ejecutables dentro delsafe_mode_exec_dir_ Por razones prácticas, no está actualmente permitido tener componentes __ en la ruta del fichero ejecutable_
    system()Ud_ puede correr sólo ejecutatables dentro delsafe_mode_exec_dir_ Por razones prácticas, no está actualmente permitido tener componentes __ en la ruta del fichero ejecutable_
    passthru()Ud_ puede correr sólo ejecutatables dentro delsafe_mode_exec_dir_ Por razones prácticas, no está actualmente permitido tener componentes __ en la ruta del fichero ejecutable_
    popen()Ud_ puede correr sólo ejecutatables dentro delsafe_mode_exec_dir_ Por razones prácticas, no está actualmente permitido tener componentes __ en la ruta del fichero ejecutable_
    mkdir()Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    rmdir()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    rename()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    unlink()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    copy()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_ (en source y target)
    chgrp()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    chown()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_
    chmod()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Además, Ud_ no puede setear los bits de SUID, SGID y sticky
    touch()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_
    symlink()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_ (Nota: sólo el target es comprobado)
    link()Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_ (Nota: sólo the target es comprobado)
    getallheaders()En Modo Seguro, las cabeceras que empiezan con 'authorization' (insensitivo al tipo de letra) no serán retornadas_ Advertencia: esto está roto por la implementación de aol_server de getallheaders()!
    header()En Modo Seguro, el UID del script está agregado a la parte realm de la cabecera WWW_Authenticate si Ud_ setea esta cabecera (usado por HTTP Authentication)_
    highlight_file(), show_source() Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_ (Nota: sólo afectado desde PHP 4_2_1)
    parse_ini_file() Comprueba que los archivos/directorios que va a utilizar, tengan la misma UID que el script que está siendo ejecutado_ Comprueba si el directorio que vaa a utilizar, tiene la misma UID que el script que está siendo ejecutado_ (Nota: sólo afectado desde PHP 4_2_1)
    Cualquier función que usa php4/main/fopen_wrappers_c ??

     
       



    registro de dominios | alojamiento web | hosting por publicidad

       

     

    Manual de linux Manual de apache Manual de php Manual de mysql Manual de SQL Manual del Plesk Como funciona Paypal Manual de html