Los administradores de Linux no deben conocer los diez principales puntos de seguridad de PHP

  
 

La seguridad de PHP
es una preocupación importante para los desarrolladores. Si bien PHP
proporciona seguridad confiable desde adentro hacia afuera, es responsabilidad del desarrollador implementar adecuadamente estos mecanismos de seguridad. En este artículo, presentaremos algunos puntos de seguridad PHP
para administradores de Linux. Estos puntos le ayudarán a proteger su aplicación web y garantizarán que funcione a largo plazo.

Antes de comenzar, es necesario comprender el sistema con el que estamos tratando. Para los propósitos de la demostración, usamos Fedora. Sin embargo, estos puntos deben aplicarse a la versión de Ubuntu o cualquier otra distribución de Linux. Consulte el manual de su distribución de SO
para obtener más información.

Observe detenidamente algunos archivos clave en nuestro entorno de sistema. Su archivo debe ser similar o corresponder a lo siguiente:

  • Servidor web predeterminado: Apache
  • DocumentRoot: /var /www /html
  • Archivo de configuración de PHP: /Etc /php.ini
  • Directorio de configuración extendido: /etc/php.d/
  • Archivo de seguridad: /etc/php.d/security.ini

    Estos consejos protegerán su sitio de diferentes tipos de ataques comunes, como inyección de SQL, XSS, ataques de falsificación de solicitudes entre sitios, eval () y carga de archivos.

    1. Eliminar módulos innecesarios.

    PHP viene con un módulo PHP incorporado. Son útiles para muchas tareas, pero no todos los proyectos las requieren. Simplemente ingrese el siguiente comando para ver los módulos PHP disponibles:
    # php – m

    Una vez que haya revisado la lista, ahora puede eliminar los módulos innecesarios. Reducir la cantidad de módulos ayuda a mejorar el rendimiento y la seguridad de las aplicaciones web con las que está trabajando.

    2. Limita la divulgación de información de PHP.

    La información de claves privadas de fugas es un lugar común. Por ejemplo, PHP pierde información, como la versión y el hecho de que está instalada en el servidor. Esto se puede hacer con el comando expose_php. Para evitar fugas, debe desactivar este comando en /etc/php.d/security.ini.
    expose_php = desactivado

    Si necesita conocer la versión y su estado, simplemente ejecute un comando Curl simple en la dirección del sitio web para obtener esta información.
    Curl – I http://www.livecoding.tv/index.php

    El comando anterior devolverá la siguiente información:
    HTTP /1.1 200 OK
    X- Powered-By: PHP /7.0.10
    Content-type: text /html; charset = UTF-8

    3. Deshabilite la ejecución remota de código.

    La ejecución remota de código es uno de los agujeros de seguridad comunes en el sistema de seguridad PHP. Por defecto, la ejecución remota de código está habilitada en su sistema. El comando "allow_url_fopen" permite funciones tales como requerir, incluir o URL identificables para acceder directamente a los archivos PHP. El acceso remoto se logra mediante el uso de protocolos HTTP o FTP, lo que puede hacer que el sistema no pueda defenderse contra las vulnerabilidades de seguridad de la inyección de código.

    Para garantizar que su sistema sea seguro y remoto desde la ejecución remota de código, puede configurar este comando en " Desactivado " de la siguiente manera:
    Allow_url_fopen = Desactivado
    allow_url_include = Desactivado

    4. Registrar errores de PHP.

    Otra forma fácil de mejorar la seguridad de su aplicación web es no mostrar errores a los visitantes. Esto asegurará que los hackers simplemente no puedan comprometer la seguridad del sitio. Necesita editar en el archivo /etc/php.d/security.ini.
    display_errors = Desactivado

    Ahora puede pensar: después de completar este paso, ¿los desarrolladores pueden depurar con la ayuda de ningún mensaje de error? " Los desarrolladores pueden usar el comando log_errors para usar Para la depuración. Solo deben configurar el comando log_errors en " On " en el archivo security.ini.
    log_errors = On
    error_log = /var /log /httpd /php_scripts_error.log

    5. Control razonable de los recursos.

    El control de los recursos es importante para garantizar la seguridad de la aplicación. Para garantizar una ejecución y seguridad adecuadas, debe limitar la ejecución de los scripts PHP. Además, debe limitar el tiempo empleado en analizar los datos de la solicitud. Si se controla el tiempo de ejecución, otros recursos, como la memoria utilizada por el script, también deben configurarse en consecuencia. Todas estas métricas se pueden administrar editando el archivo security.ini.
    # establecido en segundos
    max_execution_time = 25
    max_input_time = 25
    memory_limit = 30M

    6. Deshabilite las funciones peligrosas de PHP

    PHP viene con Funciones útiles para el desarrollo, pero también hay una gran cantidad de funciones que los hackers pueden usar para acceder a las aplicaciones web. Deshabilitar estas funciones puede mejorar la seguridad general y garantizar que no se vea afectado por funciones de PHP peligrosas.

    Para hacer esto, primero debe editar el archivo php.ini. Una vez dentro del archivo, encuentre el comando disable_functions y deshabilite la función peligrosa en el interior. Para hacer esto, simplemente copie /pegue el siguiente código.
    disable_functions = exec, passthru,
    shell_exec, system, proc_open, popen, curl_exec,
    curl_multi_exec, parse_ini_file, show_source

    7. Subir archivos.

    Si su aplicación no necesita cargar ningún archivo, deshabilitar la capacidad de subir archivos puede ayudar a mejorar la seguridad. Para evitar que los usuarios carguen archivos, solo edite el archivo security.ini en el directorio /etc/php.d/y configure el comando file_uploads en OFF.
    file_uploads = Desactivado

    8. Mantenga la versión actualizada.

    El desarrollador trabaja las 24 horas del día, los 7 días de la semana y corrige la tecnología que utiliza. Lo mismo es cierto para PHP. Dado que tiene una comunidad de código abierto, los parches y las correcciones se publican con regularidad. La versión actualizada también proporciona parches de seguridad para las vulnerabilidades del primer día y otras vulnerabilidades de seguridad. Si se enfoca en la seguridad de su aplicación, asegúrese siempre de que su solución de PHP esté actualizada. Además, los últimos parches para otras tecnologías relacionadas garantizan la máxima seguridad.

    9. Controla el acceso al sistema de archivos.

    De forma predeterminada, PHP puede acceder a los archivos utilizando funciones como fopen (). El comando open_basedir proporciona acceso. Primero, establezca siempre el comando open_basedir en el directorio /var /www /html. Establecerlo en cualquier otro directorio puede causar problemas de seguridad.
    open_basedir = " /var /www /html /"

    10. Controla el tamaño de la POST.

    Nuestro último punto de seguridad de PHP es controlar la función de tamaño POST. La función HTTP POST utiliza el navegador del cliente para enviar datos al servidor web. Por ejemplo, un usuario puede cargar un certificado y enviarlo a un navegador web para procesarlo. Todo funciona sin problemas hasta que un día el hacker intenta enviar archivos enormes para agotar los recursos del servidor. Es probable que esto cause que el servidor se bloquee o responda lentamente. Para proteger al servidor de esta vulnerabilidad, debe establecer el tamaño de POST. El tamaño de POST se puede establecer en el archivo /etc/php.d/security.ini.
    post_max_size = 1k

    Conclusión

    La seguridad es uno de los problemas más importantes para los desarrolladores web y los administradores de Linux. Si toma los puntos anteriores, está obligado a fortalecer la seguridad del entorno de desarrollo y las aplicaciones web de PHP. Si cree que nos hemos perdido contenido importante, deje un mensaje para agregar

  • Copyright © Conocimiento de Windows All Rights Reserved