Скрытое поле, безопасное использование? - PullRequest
0 голосов
/ 26 марта 2012

Я пишу веб-приложение на Asp.Net MVC 3. Предположим, что у нас есть страница и поле @ Html.Hidden с некоторой информацией. Могу ли я быть уверен, что пользователь никогда не получит эту информацию в скрытом поле? Короче говоря: безопасно ли использовать скрытые поля для информации, которая не должна раскрываться пользователю?

Ответы [ 4 ]

7 голосов
/ 26 марта 2012

Могу ли я быть уверен, что пользователь никогда не получит эту информацию в скрытом поле? Короче говоря: безопасно ли использовать скрытые поля для информации, которая не должна раскрываться пользователю?

Абсолютно нет. Он все равно будет отправлен клиенту - он просто не будет виден в отображаемом HTML. Если кто-то использует «источник просмотра», он все равно увидит поле.

Я предлагаю вам попробовать самим убедиться - создайте скрытое поле, затем просмотрите страницу в браузере и выберите «Просмотр источника». Всегда хорошо иметь представление о том, как выглядит сгенерированный HTML.

Если вы должны отправить информацию клиенту, зашифровать и подписать ее сначала - таким образом, пользователь не сможет просматривать ее в виде обычного текста и не сможет подделать в ответе другое значение, отличное от «ранее замеченных допустимых значений».

2 голосов
/ 26 марта 2012

Безопасно ли использовать скрытые поля для информации, которая не должна быть открыта пользователю?

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

1 голос
/ 16 мая 2014

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

Например, у нас есть скрытое поле, которое выглядит так:

    <asp:HiddenField ID="job_id" runat="server"  />

В чем проблема?Хорошо, это скрытое значение может быть просмотрено другими на стороне клиента, просмотрев исходный код в браузере.Вы увидите это.

    <input id="ctl00_ContentPlaceHolder2_job_id" type="hidden" value="102" name="ctl00$ContentPlaceHolder2$job_id"></input>

Как это исправить?Это правильный код.Вам просто нужно установить Visible = "false".

    <asp:HiddenField ID="job_id" runat="server" Visible="false" />

:)

Подробнее о

wusit.com / blog / member-блог-details.aspx? UPN = uE5GzSGY7UI = & ставки = yiDsoLlp + Io =

1 голос
/ 26 марта 2012

Любой пользователь может щелкнуть правой кнопкой мыши вашу форму и выбрать Просмотр источника. Это означает, что вся ваша разметка (включая скрытые поля) будет видна пользователю.

Если вы не хотите, чтобы пользователь видел это, не отправляйте его им. Попробуйте сохранить его на стороне сервера.

...