У меня действительно есть атрибут, чтобы делать это (что-то похожее) и говорить об этом точно в презентации по безопасности.Да - вы должны хешировать копию значения ... шифрование зависит от вас.если вы зашифруете его, вы не получите привязку к модели, но более открыты для атаки, хотя проверка хеша помогает.Я скоро выложу код и обновлю этот пост.Кто бы мог подумать, что Viewstate помогло с безопасностью:)
, но чтобы ответить на ваш вопрос - вы можете зашифровать его, но вам нужен способ как минимум проверить его на стороне сервера, поэтому я хэширую значение и хешируюотправьте значение, а затем сравните хэши в атрибуте.может помочь шифрование - но тогда вам нужно внедрить либо свою собственную модель связывания, либо вручную обрабатывать эти значения
Практическое правило, как правило, будет применяться для любых значений, которые могут быть злонамеренно перезаписаны для атаки на ваши данные, - тогда вам нужны некоторыезащита / проверка на этих полях.вы могли бы сравнить серверную часть с тем, что, как вы знаете, является допустимым вариантом для них (форма белого списка), но тогда у вас будет одинаковая форма правил, дублирующихся при загрузке данных и при сохранении данных, и это иногда становится немного беспорядочным, если толькоэто так же просто, как ограничение пользовательского get / update одним userId.
Я имею в виду ... если вы обновляете, скажем, запись пользователя.Как правило, главное, что имеет значение для безопасности, это то, что userId не изменяется пользователем для обновления записи, которая не принадлежит ему.Логика get / save проста ", где o.UserId == userId"
Однако в комплексной безопасности на основе ролей логика становится хитрее и не так чиста, чтобы ограничивать обновления записей, как это.В этих случаях вы действительно можете воспользоваться зашифрованными / хешированными полями.Я всегда хэш определенных полей использует для обновления.Конечно, они могут быть подделаны с другими действительными хэшированными полями из предыдущего запроса, но объем потенциального ущерба таким образом значительно более ограничен.