Неверное заполнение в ASP 2.0 cookie, MVC выглядит нормально - PullRequest
2 голосов
/ 05 апреля 2010

У нас есть библиотека управления файлами cookie, которая записывает файлы cookie, содержащие некоторую конфиденциальную информацию, зашифрованную с помощью Rijndael. Cookie отлично шифрует и дешифрует в модульных тестах (используя Moq), отлично работает для веб-приложений MVC, но при вызове с веб-сайта ASP.net 2.0 cookie не может быть расшифрован. «Заполнение недопустимо и не может быть удалено.»

Мы уверены, что значение cookie является действительным, потому что мы проверяли его 10000 раз со случайными данными в модульном тесте. Есть кое-что о том, что делает ASP.NET 2.0, когда он читает и записывает cookie, что вызывает проблемы.

Должен быть гоча. Есть предложения?

1 Ответ

0 голосов
/ 05 апреля 2010

Шестнадцатеричное кодирование данных перед сохранением их в cookie, так как шестнадцатеричные символы допустимы для значений cookie. (Base64 не является безопасным, как есть, но вы можете заменить символы + = / на _, например.) Также обратите внимание, что файлы cookie имеют максимальную длину, хотя я забыл, что это ограничение не по назначению.

Если вы пытаетесь сериализовать большое значение, рассмотрите возможность его сохранения в сеансе, чтобы у пользователя не было к нему доступа вообще. Недостатком этого является то, что при этом используется память на сервере, и если у вас есть веб-ферма, вам придется синхронизировать ее между компьютерами.

...