PHP es un gran lenguaje de programación con muchas capacidades. PHP se usa a menudo junto con HTML en páginas web. Tan pronto como un servidor recibe una solicitud, la reenvía al controlador PHP. El controlador PHP procesa el código HTML y PHP y genera el nuevo código HTML. Esto creará una página web que fue modificada en el servidor antes de ser enviada al solicitante original.

Esta capacidad hace que PHP sea poderoso, pero también lo convierte en un riesgo potencial para la seguridad. Dado que este lenguaje modifica las páginas entre cuando una computadora local realiza una solicitud y cuando el servidor devuelve esa página al dispositivo local, crea un punto en el que los piratas informáticos pueden alterar los datos.

En este artículo discutiremos algunas configuraciones de PHP y algunas formas de hacer que PHP y su servidor sean más seguros. Puede cambiar lo que pueden hacer los scripts PHP modificando el archivo PHP.ini.

Ajustes de configuración para PHP.ini

  1. allow_url_fopen

allow_url_fopen = Off

Esta configuración permite o evita que PHP use las URL utilizadas en declaraciones como include (). Si bien este comportamiento tiene ventajas, abre la posibilidad de ataques de inclusión de archivos remotos (RFI) en su servidor. En un ataque de RFI, el atacante inserta una URL en una solicitud HTTP con el objetivo de que su secuencia de comandos ejecute su inclusión frente a la suya.

Tenga en cuenta que la configuración de allow_url_fopen en off evita que obtenga contenido de ambos sitios. Si esta es una característica que necesita para su sitio, entonces debe considerar otros métodos para prevenir ataques de RFI, como: Por ejemplo, verificar las URL en su secuencia de comandos antes de ejecutarlas.

  1. Configurar el registro de errores

DISPLAY_ERRORS =Off 
display_startup_errors = Off 
log_errors = On 
error_reporting = E_ALL
Fastcgi.logging = 0

Esta configuración evita que PHP muestre errores en las páginas web en las que se ejecutan sus scripts. La visualización de mensajes de error de PHP puede brindar a los atacantes información valiosa sobre cómo penetrar en la seguridad de su servidor. Si necesita revisar algún mensaje de error, puede consultar el registro de errores de PHP. Para encontrar la ubicación del registro de errores de PHP, verifique la variable error_log en el archivo ini.

error_log = /home/yourUserID/public_html/phperr.txt

Su sistema se adjuntará a este archivo de forma indefinida. Asegúrese de que el archivo no esté disponible públicamente y revíselo y elimínelo periódicamente.

  1. Desactivar Register_globals

register_globals = Off

Si la configuración de INI register_globals está habilitada, las variables que se pasan de las URL a sus scripts se pasan automáticamente a su script. Debe deshabilitar esta configuración para que sea más difícil para los atacantes inyectar código en su sitio.

  1. Limite el uso de memoria y los tiempos de ejecución de scripts

memory_limit=16M 
upload_max_filesize=2M
post_max_size=8M 
max_input_nesting_levels=64
max_execution_time=30 
max_input_time=60

Estas configuraciones de ini establecen límites tanto para el uso de memoria como para los tiempos de ejecución de su script. De esta manera, un atacante no puede intentar usar tiempos de espera o poca memoria para explotar su sistema.

  1. Establezca open_basedir. a

open_basedir="c:inetpub"

Si configura esto en el archivo PHP INI, limitará dónde PHP puede leer y escribir archivos. Esto evita que los atacantes utilicen PHP, por ejemplo, para sobrescribir archivos de configuración.

  1. Establecer Expose_php

expose_php = Off

Configurar esto ocultará el hecho de que el servidor está ejecutando PHP.

Si sabe cómo establecer estas configuraciones básicas en el archivo PHP INI, puede proteger los scripts PHP que se ejecutan en su servidor web. En solo unos minutos, hay algunos pasos que puede seguir para reducir las posibilidades de que su sitio web sea tomado. Siempre que configure un nuevo servidor web, es importante que tome las medidas necesarias para protegerlo, de modo que no se pierdan datos valiosos.