Предложенная вами система безопасности уязвима для атак.
Блочные шифры, такие как AES, обычно используются в качестве очень надежных генераторов случайных чисел. Они называются CSPRNGs . Однако, как и любому генератору случайных чисел, вам нужно беспокоиться о том, чем вы заполняете алгоритм. В этом случае вы используете user's userID + request time
, оба из которых могут знать злоумышленники, ваша реализация не имеет ключа или IV, поэтому я предполагаю, что они имеют значение NULL. Атакующий строит запрос, поэтому он всегда будет знать request time
. userId
, вероятно, является первичным ключом, если у вас есть 100 пользователей, то злоумышленник может подделать 100 запросов, и один из них будет работать. Но злоумышленник может просто захотеть заставить администратора изменить свой пароль, у администратора обычно есть первичный ключ 1.
Не изобретайте заново wheal , очень хорошие генераторы случайных чисел уже созданы, и есть также библиотеки anti-csrf.