Tengo esta tabla que contiene las cookies de todos los usuarios: (sobre el inicio de sesión. Eso es en realidad "recuérdame")
// cookies
+----+---------+-------------------+------------+
| id | user_id | token | expire |
+----+---------+-------------------+------------+
| 1 | 32423 | dki3j4rf9u3e40... | 1467586386 |
| 2 | 65734 | erhj5473fv34gv... | 1467586521 |
| 3 | 21432 | 8u34ijf34t43gf... | 1467586640 |
+----+---------+-------------------+------------+
Y verifico las columnas user_id y token para validar una cookie:
SELECT 1
FROM cookies
WHERE user_id = :id AND
token = :token
Bueno, hay 5 casos:
- la fila existe
- la fila no existe porque
user_id = :ides falso - la fila no existe porque
token = :tokenes falso - la fila no existe porque tanto
user_id = :idcomotoken = :tokenson falso - la fila no existe porque
user_id = :idytoken = :tokenson true pero no en la misma fila.
Mi pregunta: ¿Qué caso es peligroso y tengo que preocuparme por ello? ¿Cuál no es importante y tengo que ignorarlo?
Ok, bueno, ¿qué pasa con esta teoría? "No es necesario verificar la columna user_id en absoluto:"
SELECT 1
FROM cookies
WHERE token = :token
Entonces solo hay dos casos:
- la fila existe
- la fila no existe porque
token = :tokenes falso
Y entonces no hay nada sospechoso. Entonces, ¿esta teoría es buena (segura) ?