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:
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
Descripción general Este artículo describe cómo transferir archivos entre un host Linux y un host
El archivo de repo es el archivo de configuración de la fuente de yum (repositorio de software) en F
Linux ha creado un entorno amigable que nos da la posibilidad de elegir. Por ejemplo, la mayoría d
En este artículo se presenta la base de datos DB2 durante el proceso de instalación bajo inux expli
Linux Tar comando para empaquetar el archivo vps de copia de seguridad
Inicio de sesión de usuario de Linux
Cómo limpiar archivos grandes en Linux
Linux a menudo se bloquea, se atasca, ¿qué debo hacer?
Comandos comunes para la supervisión del rendimiento de Linux
El sistema WinXP prohíbe el inicio de Desktop.ini Notepad
Los códigos de avería han conexiones de banda ancha ¿Cuál es el significado?
Win10 sistema de computadora del juego código de pantalla azul 0x0000007E cómo resolver
Sugerencias de Windows XP Cancele el indicador "Espacio en disco bajo"
Solución anormal del sistema Windows XP
Introducción a las funciones individuales del puente en el sistema Windows XP
¿Cómo utiliza el sistema Win7 el registro para cerrar y actualizar Win10 push?