Cargando



Configuración de seguridad en el servidor para Apache y PHP

Todo Administrador de servidores y webmaster siempre deben optimizar tanto el código de la web como en entrono y aplicaciones del servidor. Uno de las tareas que mas se debe prestar atención es la configuración y optimizacion de Apache y php. Sobre todo por temas de seguridad.


sep 14 2013 13:42
Algunas tareas a realizar para dar mayor seguridad y evitar problemas son:

Desactivar la visualización de error y warning en php, esto se puede utilizar en la etapa de programación para ayudar al desarrollador a ver los errores y luego desactivarlo cuando la web entre en etapa de producción.

Desactivar todas las notificaciones de error

Usando las variables siguientes en el php.ini:

error_reporting(0);
// Notificar solamente errores de ejecución

error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Notificar todos los errores excepto E_NOTICE

error_reporting(E_ALL ^ E_NOTICE);
// Notificar todos los errores de PHP (error_reporting(E_ALL);

También pueden activarse y desactivarse poniendo el código al inicio de la pagina a ejecutar.

Seguridad-en-PHP-APACHE.jpg


Siempre es importante corregir y no ocultar errores, muchos desarrolladores utilizan error_reporting(0) para ocultar errores, pero estos siguen estando y podrían ser aprovechados, siempre debemos evitar que cualquier código que desarrollemos tenga errores ya sea php, javascript o el lenguaje que utilicemos.
Es importante controlar las variables y que datos ingresan.

Cambiar la extensión de los archivos

Se puede cambiar la extensión al invocar y ejecutar los script en php, en archivos con extensión html.

En el archivo de configuración de apache (httpd.conf)
Buscamos la línea:

AddType application/x-httpd-php

Y le agregamos al final .htm y .html, nos quedaria de la siguiente manera:

AddType application/x-httpd-php .htm .html

Tambien podemos crear una extensión personalizada para ocultar el tipo de archivo al visitante
AddType application/x-httpd-php .bo .sol .tf
Esto es muy útil por razones de seguridad. Ocultamos en que esta programado la aplicación porque en el navegador se vera simplemente .html o la extensión personalizada en los scripts que en realidad son php. Muchas web utilizan este método.

Verificar que register_globals este inactivo
Descativar register_globals y no permitir la creación de variables al vuelo entre otras cosas con:
register_globals = Off

Desde php.ini esto obliga a declara todas las variable o dara un error.

Deshabilitar las URL remotas para funciones que manejen archivos

Esto sirve para que no se pueda ejecutar o acceder una un archivo de nuestro servidor desde otro, en el php.ini desactivamos allow_url_fopen

allow_url_fopen = Off

Restringir en que directorio PHP puede leer o ejecutar cualquier script o proceso
open_basedir = /var/www/htdocs/midomino.com

Cada dominio puede modificar su propio php.ini si el administrador del servidor lo permite, aunque es poco frecuente.

Deshabilitar de Apache HTTP TRACE

HTTP TRACE se utiliza para devolver el resultado de la petición que se realizo al servidor.
Puede ser utilizado para ataques de Cross Site Scripting o XSS, así que lo más recomendable es deshabilitarlo por cuestiones de Seguridad.
Modfificamos en /etc/httpd/conf/httpd.conf
TraceEnable off

Apache es uno de los servidores Web más utilizados y php es el lenguaje mas extendido para desarrollar web, con estas configuraciones y herramientas qpodemos ayudar a reforzar la seguridad de nuestra web a posibles ataques.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X