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.
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 .tfEsto 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.