Como varias personas han declarado, no confíe nunca en la opinión del usuario. Al desinfectar su entrada, especialmente los campos de nombre de usuario & que ayuda a evitar los ataques de inyección de SQL.
Por todo lo que es bueno & santo no almacena nombres de usuario o contraseñas en las cookies, se devuelven & al servidor en cada solicitud y cualquiera que vea la transmisión puede obtener esos datos ... entonces estás en un gran problema.
Aquí hay un par de artículos que debe leer sobre sesiones, seguridad y hashing - simplemente no es suficiente con sus contraseñas a SHA1 o MD5, saltelas para que sean aún más robustas. No existe la seguridad impenetrable, incluso si haces TODO lo correcto, alguien puede romperla, es inevitable. Tu trabajo es hacer cosas tan difíciles de romper/explotar como sea posible.
Cuanto más trabajo implique irrumpir en su sitio, más valioso debe ser su contenido para que valga la pena el esfuerzo. Su trabajo es desalentar a los usuarios maliciosos.
Este artículo tiene algo de información agradable en la creación de huellas digitales únicas para sus visitantes, ayuda a hacer el robo de sesiones más difícil - PHP Security Guide: Sessions
Este artículo trata de la contraseña de base de hash & técnicas de salazón - Password Hashing
Este es, de no significa un fin, todos & se todo - puede hacer una carrera haciendo la seguridad y cosas por el estilo, pero son un buen punto de partida. Alguien aquí probablemente pueda señalar artículos mejores/más avanzados, pero personalmente los he encontrado útiles para reforzar mi código.
¿Quiere decir esto que yo debería comprobar la conexión del usuario y la contraseña en cada página cargada? ¿Y cómo es la mejor manera de mantener segura la base de datos de contraseñas y el método de cifrado? –
@Grue no solo cuando inician sesión, sino que necesita una política de invalidación sensata. Diferentes direcciones IP, duración determinada, duración de la inactividad, etc. Lo que tenga sentido para lo que está protegiendo (por ejemplo, un sitio web bancario tiene diferentes consideraciones de seguridad para otro en el que simplemente deja comentarios en los videos). – cletus
Algunas cosas bastante anticuadas en esta respuesta. No use SHA1 o MD5 para las contraseñas: http://stackoverflow.com/questions/1581610/how-can-i-store-my-users-passwords-safely –