¿Una forma más segura? Utilice https junto con esto. Aquí hay dos vulnerabilidades:
- Cuando el usuario inicia sesión, la contraseña que se envía puede ser leída fácilmente por cualquiera que espíe su conexión. Esto no puede suceder en una conexión https.
- Si un usuario ya ha iniciado sesión, alguien que espíe su conexión puede copiar las cookies de la sesión. En HTTPS, las cookies se transmiten de forma segura, por lo que no hay mucho problema.
También es posible que desee registrar la dirección IP del usuario y no permitirle que cambie, aunque esto puede resultar molesto (para un usuario como yo que está detrás de un proxy de la universidad con IP externas rotativas, nunca podré iniciar sesión ).
Una observación final: no use GET para el bit de cierre de sesión. Trate de no usar GET para cualquier cosa que active un cambio; está bien para la navegación, pero no para cualquier cosa que lleve a que algo cambie en el servidor (un logout, o cualquier cosa que escriba en una base de datos). Consulte el uso prescrito de GET y POST para obtener más detalles .
Si implementa lo anterior, asegúrese también de que la referencia de una solicitud POST sea su sitio y no otro sitio. (Esto, junto con lo anterior, ayudará a prevenir los ataques de CSRF ).
Para evitar clickjacking , deshabilite el encuadre a través de javascript y el encabezado X-Frame-Options: deny
.