Я сохраняю значение ItemId в файле cookie, чтобы отслеживать выбранный пользователем элемент. Этот ItemId не является конфиденциальной информацией, мне все равно, увидят ли пользователи значение. К этому значению нужно будет обращаться на большинстве страниц, поэтому было принято решение сохранить значение в файле cookie, а не в базе данных. Если бы это было в БД, у меня не было бы этой проблемы.
Проблема в том, что пользователь может изменить этот ItemId файла cookie для ItemId другого пользователя, и тогда он потенциально сможет выполнять действия с чужим элементом. Это если я не проверяю значение cookie для базы данных, чтобы убедиться, что оно является действительным для пользователя, вошедшего в систему. Это означает попадание в базу данных, в результате чего цель положить значение в cookie.
По сути, мой вопрос заключается в том, как запретить пользователю изменять файл cookie или хотя бы узнать, что он был изменен? Я знаю, что файл cookie аутентификации форм .NET хранит данные об идентификаторе пользователя и роли, поэтому они, очевидно, имеют ту же проблему.
Моей первоначальной мыслью было зашифровать значения в куки. Я понимаю, что cookie все еще может быть взломан, но может ли это хотя бы предотвратить подделку его значений?
Может быть, я должен был пойти по маршруту БД?
Спасибо.