Regularmente uso un formulario estándar para enviar información de inicio de sesión a través del método HTTP POST y luego validarlo usando php para verificar si los detalles son correctos. Utilizo un hash md5 en las contraseñas (y en ocasiones los nombres de usuario) para proporcionar cierto grado de seguridad, así que no estoy almacenando una contraseña sin procesar en mi código en caso de que sea vista por una persona no autorizada o algo así.Usando HTTP POST para formularios de inicio de sesión
Estoy bastante seguro de que acabo de hacer que alguien, incluso con una comprensión vaga de gemido de seguridad o al menos suspiro con exasperación.
Recientemente he estado trabajando en un foro que tiene una base de datos MySQL de usuarios y contraseñas, las contraseñas se almacenan como hash md5, pero me preocupa que al enviar el formulario de inicio de sesión mediante HTTP POST la posibilidad de que la información sea interceptada esta ahí. Soy consciente de las posibilidades de los ataques de inyección de MySQL y creo que estoy a salvo de cualquier ataque simple.
No soy un experto en seguridad cuando se trata de este tipo de cosas, pero me gustaría limitar las posibilidades de interceptar las contraseñas cuando se envían a través de HTTP.
No es un sitio grande, así que no estoy demasiado preocupado por los ataques y HTTPS no es realmente una posibilidad, entonces estoy buscando consejos sobre prácticas estándar que debería seguir al usar este método de envío de información de inicio de sesión.
Saludos
¿cuál es el mejor hasher (si es que es un término) para hacer esto usando php? y ¿cuál es la mejor manera de hash una entrada antes de enviarlo? Supongo, aunque podría estar equivocado, que me gustaría utilizar javascript para tomar las entradas de los usuarios y hash antes de enviar el formulario, pero si javascript está desactivado, esto no funcionaría. – andyface
Normalmente me atengo a los algoritmos estándar, tanto para la seguridad como para la compatibilidad. PHP tiene una función sha1() que está bien para la mayoría de los usos. Obviamente necesitas un código del lado del cliente para hacer eso, ya sea javascript, un applet, un plugin de navegador, etc. Yo iría por JS. Siempre puede proporcionar un formulario de inicio de sesión sin script menos seguro. – Patonza
https no se almacena en caché, ¿o sí? No creo que lo necesite para algún pequeño foro ... –