Tips de Seguridad (PHP) – Hardening PHP

El presente manual tiene como finalidad suministrar una serie de tips para mejorar la configuración de PHP.

Configuración

Editar archivo de configuración de php5:

operador@servidor:/$ sudo nano /etc/php.ini

1. Con la directiva open_basedir PHP puede restringir su uso sólo al directorio indicado, con esto se puede evitar si un atacante ubica una vulnerabilidad, pueda utilizarla para entre otras cosas, listar directorios fuera del indicado.

open_basedir = /var/www/html

2. Hay ciertas funciones en PHP que por su “peligro” se sugiere no utilizar. Para habilitar la directiva disable_functions sólo tiene que añadir a su php.ini con una lista separada por comas de las funciones que desea restringir.

Ejemplo1:

disable_functions = system,exec,popen,passthru,shell_exec,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate

Ejemplo2:

disable_functions = php_uname,getmyuid,getmypid,passthru,leak,listen,diskfreespace,tmpfile, link,ignore_user_abord,shell_exec,dl,set_time_limit,exec,system,highlight_file,source,show_source, fpaththru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid, posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid, posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill, posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid, posix_times,posix_ttyname,posix_uname,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,phpinfo

3. Desactivar los mensajes de error:

expose_php = Off

4. Desactivar la subida de archivos:

file_uploads = Off

5. En caso de permitir la subida de archivo, se puede cambiar el directorio temporal de carga de archivo y la carga máxima de archivo

upload_tmp_dir = /var/php_tmp
upload_max_filezize = 100M

6. Configurar zona horaria:

date.timezone = "America/Caracas"

7. Cantidad de memoria permitida para la ejecución de un script. Al limitar éste valor se puede evitar que un script pueda consumir toda la memoria RAM del sistema y bloquealo. Se debe modificar el siguiente parámetro dependiendo de la memoria RAM disponible:

memory_limit = 512M

8. Tiempo máximo que puede estar PHP procesando entrada de datos. Valor por Defecto 60 segundos, máximo permito 300 segundos, infinito -1.

max_input_time = 60

9. Tiempo máximo que puede estar un script PHP ejecuntádose. Valor por defecto 30 segundos

max_execution_time = 30

Enlaces:

Tus formularios de login pronto dejarán de ser seguros
php security best practices tutorial

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s