Las 12 mejores prácticas de seguridad para PHP
Publicado: 2021-08-14La seguridad es un tema importante para todos los desarrolladores de software, pero los desarrolladores de PHP enfrentan algunos desafíos únicos. En esta publicación de blog, exploraremos las 12 mejores prácticas de seguridad para PHP, junto con cómo puede implementarlas en su código para ayudar a mantener su sitio web seguro y protegido. ¡Siempre puede utilizar a los profesionales de WebCitz para manejar sus necesidades de programación PHP!
1. Actualice su versión de PHP con regularidad
Asegúrese de que su versión de PHP esté actualizada para minimizar el riesgo de vulnerabilidades de seguridad. Los parches a menudo corrigen errores conocidos, por lo que es importante que los aproveche a medida que se publican.
Los piratas informáticos ya han comenzado a explotar las últimas fallas de PHP. Aquellos de ustedes con versiones anteriores serán vulnerables a sus intrusiones a menos que cambie su configuración.
Puede probar la versión preliminar, pero los asesores de seguridad advierten a las empresas que eviten las versiones preliminares de un nuevo software porque es posible que aún tengan fallas de seguridad desconocidas.

2. No exponga datos confidenciales a Internet a través de una conexión no cifrada
Muchos sitios web siguen siendo vulnerables porque sus desarrolladores cometieron un error al exponer las credenciales de la base de datos o del sistema de archivos en la Internet pública utilizando un protocolo FTP desprotegido, una cuenta de correo electrónico sin protección SSL, etc.
Proteja estos archivos y carpetas cifrándolos antes de transmitirlos a través de cualquier conexión de red que no esté cifrada con TLS / SSL.

3. Protéjase contra ataques de inyección SQL
Una vulnerabilidad de inyección de SQL (lenguaje de consulta estructurado) se produce cuando la entrada del usuario se utiliza dentro de una consulta sin la validación adecuada de su tipo e intención, lo que compromete la fiabilidad de los resultados que se muestran al seguir consultas unidas a partir de cadenas enviadas.
Eso suena complicado, pero todo lo que necesita saber es que este ataque puede exponer sus datos comerciales e información confidencial.
La mejor manera de protegerse contra los ataques de inyección de SQL es asegurando la entrada, evitando que los piratas informáticos inyecten su propio código en el sitio web a través de un campo de formulario o un cuadro de ruptura. Desea desinfectar cualquier valor enviado por el usuario antes de insertarlo en una consulta SQL, así: $ input = filter_var ($ _ POST ['field'], FILTER_SANITIZE_STRING); if (! empty ($ input)) {echo "Ingresaste:". $ input ".
“; } else {echo 'Por favor ingrese algo';}. Observe cómo hemos usado empty () para asegurarnos de que no haya campos vacíos.

4. Asegúrese de almacenar datos confidenciales de forma segura
Cuando se trata de mantener seguras las contraseñas y la información de la tarjeta de crédito, no hay lugar para el error: ¡hay mucho en juego si un pirata informático obtiene acceso a estos archivos o bases de datos que contienen esta información!
Para minimizar el riesgo de que ocurra un ataque de este tipo, utilice siempre un algoritmo de cifrado sólido cuando almacene datos confidenciales en su base de datos, preferiblemente uno con cifrado AES de 128 bits como SHA512_RSA.
También hay un software disponible que facilita la administración de bases de datos cifradas: MySQL Encryption Utilities (MEU). Es importante tener en cuenta que MEU solo encripta campos de texto en bases de datos MySQL, pero eso es lo suficientemente bueno para la mayoría de los casos de uso.

5. No reutilice las contraseñas
¡Reutilizar la misma contraseña una y otra vez es una forma segura de piratear tu cuenta más temprano que tarde! Si está utilizando las funciones integradas de PHP para generar cadenas de texto aleatorias (como rand ()), recuerde que son de corta duración, así que asegúrese de cambiarlas cada pocos meses al menos.
Quiere que incluya letras mayúsculas, minúsculas, números y símbolos. Tampoco está de más tener reglas más complejas sobre cuándo se debe generar una nueva cadena, como una vez por semana o después de tres intentos de inicio de sesión con una contraseña incorrecta. ¡Incluso hay software disponible que puede hacer los cálculos por usted!

6. Asegúrese de que sus aplicaciones no sean vulnerables a los ataques XSS
XSS (Cross-Site Scripting) es un ataque en el que se inyecta un código malicioso en un sitio web y luego se ejecuta en el navegador de un visitante. Esto a menudo puede conducir al robo de cookies o al secuestro de sesiones, lo que les da a los piratas informáticos acceso a todos sus datos confidenciales sin tener que ingresar sus propias credenciales, como contraseñas o números de tarjetas de crédito.

Esta vulnerabilidad se puede aprovechar mediante el uso de la validación de formularios JavaScript en las páginas web, de modo que cualquier entrada ingresada por los visitantes se ejecute automáticamente a través de la actualización de la página, mostrando hipervínculos con contenido activo como imágenes dentro de ellos y agregando parámetros proporcionados por el usuario en URL dinámicas como '? cuenta = 123 'etc.

7. Protéjase contra ataques CSRF
CSRF (Cross-Site Request Forgery) es un tipo de ataque en el que se transmiten comandos no autorizados desde el sitio del atacante a su aplicación web. Esto puede provocar el secuestro de la sesión o el robo de cookies, entre otras cosas.
Puede parecer difícil a primera vista, pero todo lo que necesita hacer es proporcionar un token adicional que necesite verificación para cualquier acción en la que pueda estar expuesta información confidencial, como iniciar sesión en la cuenta de otro usuario; esto garantizará que no haya solo uno. punto único de vulnerabilidad y asegúrese de que no se utilicen cuentas automatizadas en su sitio web.

8. ¡No se olvide de los parches habituales!
A menudo no hace falta decirlo, pero debe mantenerse al día con los parches de las nuevas vulnerabilidades cuando el proveedor de su sistema o el proveedor de software las publique.
Nunca se sabe qué agujero de seguridad ha encontrado alguien más, pero no es consciente de ello, ¡y es mejor mantenerse informado que piratear su sitio web!

9. No deje el modo de depuración habilitado en entornos de producción
El código de depuración a menudo tiene capacidades para habilitar cosas como la edición remota de archivos (usando fopen ()) y la generación de consultas SQL sin procesar a través de mysql_query ().
Estos son excelentes si desea generar seguimientos de pila completa cuando ocurren errores, pero abren importantes riesgos de seguridad en su sitio web de producción. La desactivación de estas funciones y la eliminación de las instancias en las que se utilizan también le permitirá ahorrar mucho tiempo a la hora de corregir errores.

10. Compruebe si hay puertos abiertos en el cortafuegos
Puede ser tentador presionar 'siguiente' cada vez que Windows termine de instalar las actualizaciones, pero no se olvide de verificar qué servicios se están ejecutando y si todo está configurado correctamente o no; eso incluye actualizar los firewalls si es necesario.
Ayudará a mantener alejados a los visitantes no deseados si los piratas informáticos no pueden encontrar un punto de entrada a su sistema a través del cual puedan ejecutar su ataque con la misma facilidad.

11. No use "admin" como nombre de cuenta
Si desea protegerse de que otra persona acceda a su sitio adivinando contraseñas, intente usar otro nombre de usuario, como "admin" o algo más que no sea tan obvio.
Si alguien intenta acceder a su cuenta, le resultará mucho más difícil adivinar la contraseña y también será más difícil para los piratas informáticos explotar los métodos de fuerza bruta si está utilizando un nombre de usuario poco común.

12. Manténgase actualizado con las nuevas vulnerabilidades
Puede parecer abrumador al principio, pero mantenerse informado sobre los agujeros de seguridad que encuentran otras personas ayudará a mantener su sistema seguro en caso de que se produzcan fugas.
Sin embargo, hacer un seguimiento de todas esas actualizaciones puede ser difícil; afortunadamente, ahora hay muchas herramientas disponibles que hacen que esta tarea sea más fácil que nunca. Una de estas herramientas se llama 'Debian Long Term Support', que está diseñada para admitir múltiples versiones del sistema operativo y todo tipo de software, incluidos los servidores web con PHP.

Conclusión
En conclusión, estas son solo algunas de las mejores prácticas de seguridad que puede aplicar a su sitio web para mantenerlo seguro. No siempre es fácil, pero si te tomas un tiempo para esforzarte, ¡serás recompensado con una presencia en línea que es menos probable que sea pirateada!
