asp.net viewstate шифрование - PullRequest
10 голосов
/ 05 декабря 2008

У меня есть несколько вопросов о том, когда и как viewstate шифруется в asp.net 3.5. Например, если у меня есть запись машинного ключа в моем файле web.config, например: decryptionKey = "AutoGenerate, IsolateApps" проверка = "AES" decryption = "Авто" />

Зашифровано ли в этом месте viewstate? Или мне нужно также указать viewStateEncryptionMode в разделе страницы?

Кроме того, возможно ли зашифровать cookie для проверки подлинности с помощью форм, но не зашифровать состояние представления одновременно?

Спасибо за любую помощь.

1 Ответ

12 голосов
/ 05 декабря 2008

Элементы управления на странице могут запрашивать использование шифрования для ViewState, но даже этот запрос может быть переопределен настройкой страницы.

Перечисление ViewStateEncryptionMode имеет три значения: Авто, Всегда и Никогда. Значением по умолчанию является Авто.

ViewStateEncryptionMode.Auto

В этом режиме ASP.NET шифрует ViewState для страницы, если какой-либо элемент управления на странице запрашивает его. Обратите внимание, что это означает, что весь ViewState зашифрован, а не только ViewState для элемента управления, который его запрашивает. Большая часть затрат на производительность, связанных с шифрованием, приходится на накладные расходы. Поэтому шифрование всего ViewState выполняется быстрее, чем выполнение отдельных операций шифрования, если запрос выполняется несколькими элементами управления.

ViewStateEncryptionMode.Never

Как и следовало ожидать, в этом режиме ASP.NET не будет шифровать ViewState, даже если приложение настроено для шифрования и элементы управления на странице запросили его. Если вы знаете, что никакие данные на странице не должны быть зашифрованы, тогда может быть безопасно установить режим никогда. Однако на данный момент документация об элементе управления редко раскрывает то, что сохраняется в ViewState, поэтому вам следует быть осторожным, если есть вероятность, что уязвимые данные могут быть раскрыты.

ViewStateEncryptionMode.Always

В этом режиме ASP.NET не ожидает элемент управления на странице для запроса шифрования. ViewState всегда зашифрован. При работе с конфиденциальными данными рекомендуется использовать шифрование.

Источник: http://msdn.microsoft.com/en-us/library/aa479501.aspx

...