Sí, necesita un MAC para asegurarse de que el usuario no haya manipulado el valor a otra cosa, que es una identificación de usuario válida una vez descifrada.
Además, en lugar de MAC <userid>
, debe agregar algo de contexto a su alrededor, y luego mac eso.
por ejemplo userid=<userid>
Esto evitará un ataque de sustitución en otra parte de su sitio con datos que han sido MAC. Por ejemplo, si hay una página en su sitio que indica que un atacante necesita un 100
de MAC para pasarle. por ejemplo
example.com/view_order?order_id=100&mac=****
El atacante no conoce el MAC para ingresar. Sin embargo, el usuario puede crear usuarios y su usuario recientemente creado tiene un ID de usuario 90. El atacante simplemente crea 10 usuarios más y echa un vistazo a la cookie creada. Como esto contendrá el MAC para el número 100, pueden sustituir el valor a su solicitud de URL anterior. Esta es la razón por la que el contexto importa al crear MAC.
Además, lo ideal es que incluyas una fecha de caducidad en dichos datos para evitar ataques de repetición en un momento posterior.
por ejemplo deberías mac userid=<userid>&expiry=20160203120000