Hacemos análisis independientes de los productos que recomendamos. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Cómo hacer más seguro PHP

En la actualidad, con el aumento de la popularidad de WordPress, muchos sitios utilizan PHP + Mysql para crear sus proyectos, y se hace imprescindible mejorar la seguridad de PHP en nuestros servidores.

  • Cada vez se está volviendo más importante asegurar PHP a través de su archivo de configuración PHP.ini

Cómo hacer más seguro PHP: encuentra el archivo php.ini

Cómo hacer más seguro PHP

Lo primero que tendríamos que hacer es encontrar el archivo PHP.ini.

Si tenemos acceso ssh a nuestro servidor, podemos ejecutar el siguiente comando en la shell:

# php -i |grep php.ini

En cpanel también podéis ver su configuración y probablemente editar algunas de sus funciones. Si no encontráis el archivo, lo más sencillo es ponerse en contacto con el soporte de la empresa de hosting y que os generen uno para vuestro dominio.

En caso de usar Virtualmin/Webmin solo tenéis que ir a Webmin > Others > PHP Configuration y editar el archivo /etc/php.ini

Cómo hacer más seguro PHP: editar el archivo php.ini

Una vez que lo encontramos, procedemos a editar algunas opciones:

1.-safe_mode (ON)

Poner PHP «Safe mode»  en ON es una de las maneras más sencilla de asegurar nuestra instalación y de limitar las funciones que utiliza PHP. En algunos casos puede resultar un poco restrictiva y provocar que determinadas aplicaciones no funcionen, pero siempre es recomendable poner esta orden en On en los Servidores Compartidos, por lo que probablemente, si estamos en un shared server, vuestro proveedor ya lo haya hecho por vosotros.

Si ponemos safe_mode en modo «on» parara la ejecución de funciones exec y otras del estilo que normalmente pueden provocar un fallo en la seguridad del servidor.

2.-Deshabilitar determinadas funciones PHP

PHP puede provocar un hackeo del servidor a través de determinadas funciones que deberíamos deshabilitar para mejorar la seguridad:

Dentro de php.ini hay que buscar la linea donde tengamos:

disable_functions =

Y añadimos lo siguiente:

disable_functions = dl,system,exec,passthru,shell_exec

3.-Register Globals (OFF)

Mediante register_globals pueden introducir en nuestro entorno muchas variables no deseadas, por lo que siempre es recomendable desactivar esta función. Muchos programas como moodle, te solicitan que así lo hagas durante la instalación.

Buscamos en PHP.ini

register_globals = On

y lo cambiamos por:

register_globals = Off

4.-display_errors (OFF)

Con esto conseguiremos que no se muestren todos los errores de la aplicación que pueden proporcionar detalles sobre las rutas a los programas o sobre las consultas MySQL

5.-allow_url_fopen y allow_url_include (OFF)

allow_url_fopen en OFF impide que algunas funciones PHP como include, require, y file_get_contents(), pidan datos externos.

allow_url_include en OFF impide el acceso remoto via include y require.

6.-magic_quotes_gpc (OFF)

Lo mejor, para tener un «ambiente» seguro es ponerlo en OFF. En este articulo teneis algunas de las ventajas y desventajas de hacerlo o no What is Magic Quotes GPC (magic_quotes_gpc) in PHP and the php.ini?

7.-open_basedir

Esta directiva tiene que estar configura a un determinado directorio para que PHP solo pueda acceder a él

8.-Correr PHP a través de PHPsuexec

El gran problema de PHP es que en servidores con cPanel, PHP corre mediante el usuario «nobody». Cuando alguien pone un script con acceso 777, un usuario «nobody» puede escribir en el archivo. Y esto puede ser peligro en un Servidor Compartido (Shared Server) ya que lo que sucede en unas cuentas puede afectar a las demás. En otras palabras: no es necesario que tu cuenta este comprometida. Si lo esta la del vecino, la tuya también.

PHPsuexec hace que los permisos 777 no estén permitidos. ¿Inconveniente? PHP se vuelve más lento, pero es más seguro. Además, como cada proceso esta asociado a un usuario en concreto, es más sencillo seguir la pista a los errores.

Para que PHP funcione de este modo, hay que recompilar PHP con suexec. Si tienes Cpanel/WHM lo tienes que hacer mediante Easyapache. Si estas en un servidor Compartido, probablemente ya este activada la opción (No vas a poder recompilar PHP por tu cuenta).

Cómo hacer más seguro PHP: ¿Usas como CMS WordPress?

Puedes mejorar tu seguridad deshabilitando la ejecución de archivos PHP en directorios donde no es necesario, como /wp-content/uploads/.

Puedes hacerlo abriendo un editor de texto como el Bloc de notas y pegando este código:

<Files *.php>
deny from all
</Files>

A continuación, debes guardar este archivo como .htaccess y subirlo a /wp-content/uploads/ en tu sitio web usando un cliente FTP.

Cómo hacer más seguro PHP: ¿Gestionas tu propio servidor? Usa Lynis

Lynis es un programa que va a comprobar la seguridad de tu servidor Linux al completo, no solo de PHP. Muy fácil de instalar y de utilizar.

Descarga e instalación (versión 2.2.0, comprueba si hay nuevas):

# mkdir /usr/local/lynis
# cd /usr/local/lynis
# wget https://cisofy.com/files/lynis-2.2.0.tar.gz
# tar -xvf lynis-2.2.0.tar.gz

Cómo usarlo:

# cd lynis
# ./lynis

Es un programa gratuito que te permite asegurar tu servidor, comprobar si hay puertas traseras de entrada y si cumples con los estándares de seguridad.

Vía Web Host Gear y www.tecmint.com

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.