Soy nuevo en el trabajo con PHP, y recientemente heredé un proyecto de sitio web donde el desarrollador original había estado limpiando la entrada del usuario con mysqli_real_escape_string()
antes de consultar la base de datos MySQL. Como aprendí recientemente de Inyección de SQL que se utiliza mysql_real_escape_string ()
, la base de datos aún es vulnerable a la inyección de SQL en campos numéricos, y las declaraciones preparadas deben usarse en su lugar.
Sigo encontrando vulnerabilidades como esta a la vez, a medida que profundizo en cómo PHP limpia, almacena y administra los datos. La mayoría de la información que puedo encontrar en la web no está actualizada hasta ahora, por lo que es difícil encontrar una lista de las mejores prácticas actuales. Para mi aplicación, necesito almacenar contraseñas de usuarios, permitir inicios de sesión con múltiples niveles de permisos, recuperar datos de nuestra base de datos, permitir a los usuarios enviar varios formularios, etc.
¿Alguien tiene una lista completa y actualizada de las mejores prácticas de PHP para que la use cuando programo el sitio web? Si no es así, ¿conoce los errores comunes de seguridad que cometen los nuevos programadores de PHP y cómo evitarlos? Cualquier ayuda sería apreciada grandemente.