El Comercio Digital

Webmaster Libre

Desarrollo Web con Software Libre

Asegurando una instalación de PHP

Cuando instalamos PHP este viene con una serie de valores por defecto que no lo hacen adecuado para un sitio en producción y puede provocar que utilicemos técnicas inseguras. Todo esto puede solucionarse si ponemos en práctica el listado de tareas que debemos realizar antes de abrir el sitio al gran público que nos deja Ayman Hourieh.

  1. Deshabilitar las URL remotas para funciones que manejen archivos:

    allow_url_fopen = Off

  2. Register Globals

    register_globals = Off

  3. Restringiendo lo que PHP puede leer o escribir

    open_basedir = /var/www/htdocs/files

  4. Safe Mode

    safe_mode = Off
    safe_mode_gid = On

  5. Límites para los tiempos de ejecución

    max_execution_time = 30 ; Max script execution time
    max_input_time = 60 ; Max time spent parsing input
    memory_limit = 16M ; Max memory used by one script
    upload_max_filesize = 2M ; Max upload file size
    post_max_size = 8M ; Max post size

  6. Limitar el acceso a ciertos tipos de archivos mediante directivas de Apache


    Order allow,deny
    Deny from all

  7. Mensajes de error y logging

    display_errors = Off
    log_errors = On

  8. Ocultar la presencia de PHP

    expose_php = Off

Resumen

Todos los cambios realizados quedan concretados en un php.ini tal que así:

; php.ini
allow_url_fopen = Off ; Disable URLs for file handling functions

register_globals = Off ; Make sure this hellish fiend is dead

open_basedir = /var/www/htdocs/files ; Restrict file handling functions to a subdirectory

safe_mode = Off ; Disable this, the next is often more practical
safe_mode_gid = On ; Enable safe mode with group check
safe_mode_exec_dir = /var/www/binaries ; Restrict execution functions to this directory
safe_mode_allowed_env_vars = PHP_ ; Restrict access to environment variables

max_execution_time = 30 ; Max script execution time
max_input_time = 60 ; Max time spent parsing inputs
memory_limit = 16M ; Max memory size used by one script
upload_max_filesize = 2M ; Max upload file size
post_max_size = 8M ; Max post size

display_errors = Off ; Do not show errors on screen
log_errors = On ; Log errors to log file

expose_php = Off ; Hide presence of PHP

Y un archivo .htaccess o parte de la configuración de Apache

# Apache configuration or .htaccess

Order allow,deny
Deny from all

Más información y explicaciones en el artículo original, en inglés: Checklist for Securing PHP Configuration

PHP

Si te ha gustado este post no olvides suscribirte al feed para estar al tanto de las novedades

3 Respuestas a “Asegurando una instalación de PHP”

Agrega tu comentario

  1. ronald dice:

    interesante post.
    es interesante saber que hace cada una de las variables del php.ini
    si necesitan informacion no duden en visitar http://rcarrascal.blogspot.com/
    puedo ayudar en lo que necesiten

Trackbacks/Pingbacks

  1. meneame.net dice:

    Asegurando una instalación de PHP…

    Cuando instalamos PHP este viene con una serie de valores por defecto que no lo hacen adecuado para un sitio en producción y puede provocar que utilicemos técnicas inseguras, si quieres parametrizar algo a tu medida, puedes seguir este mini HOW-TO pa…

  2. [...] Mas acerca de: Webmasterlibre Configura tu PHP de forma segura checklist for securing php configuration checklist for securing php configuration [...]

Feed RSS de los comentarios de este post.

Deja tu comentario

Por favor, procura que tus comentarios aporten algo al tema del artículo. Los comentarios ofensivos y el spam serán eliminados.

Si tu comentario no aparece al momento puede que esté en la cola de moderación o en Akismet, lo reviso cada día pero si ves que pasa un tiempo prudencial y no aparece dímelo

Este post tiene 3 años. Puedes dejar un comentario de todas formas y volver más tarde para comprobar si hay novedades sobre el tema.

Información:

Webmaster Libre es un blog de Alma Fernández Página alojada en Redcoruna