Para evitar ataques de falsificación de solicitudes entre sitios, estoy considerando el siguiente esquema:
Para cada usuario, almacene una clave aleatoria. Si el usuario envía información "peligrosa", incluya un token de seguridad y una fecha de creación en la carga. Si la fecha de creación anterior a la T (actualmente me estoy inclinando 5 minutos), la solicitud se considera caducada e inválida.
El token de seguridad será un MAC (Poly1305-AES?) sobre la fecha de creación, firmado con la clave aleatoria del usuario. Si la solicitud es lo suficientemente joven, verifique si el MAC es válido para la fecha y hora de este usuario. Si lo es, considere la solicitud auténtica.
¿Este esquema es seguro contra CSRF y ataques de repetición, siempre que toda la comunicación se realice a través de https?