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 = :id
es falso - la fila no existe porque
token = :token
es falso - la fila no existe porque tanto
user_id = :id
comotoken = :token
son falso - la fila no existe porque
user_id = :id
ytoken = :token
son 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 = :token
es falso
Y entonces no hay nada sospechoso. Entonces, ¿esta teoría es buena (segura) ?