Это использование скрытых полей небезопасно? - PullRequest
2 голосов
/ 22 февраля 2012

Я улучшаю унаследованную систему (которую я не помогал строить) и хотел бы узнать у других людей, являются ли некоторые вещи, которые я заметил, законными проблемами безопасности или нет.

Прежде всего, приложение защищено с помощью логина.Однако, как только пользователь вошел в систему, в приложении появилось 11 страниц, в которых скрытое поле хранит значение имени файла, а также путь для загрузки.

Javascript используется для автоматической отправки формы, а затем пользователь загружает и сохраняет файл на своем компьютере.Я думаю, что это значение может быть изменено, и пользователь невольно загрузит вредоносный файл.

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

Спасибо за ваш отзыв!

Ответы [ 3 ]

2 голосов
/ 22 февраля 2012

Очень вероятно, небезопасно. Скрытые поля формы - тонкость реализации.

В частности, вы не можете полагаться на значение поля формы, отправляемого обратно на сервер с тем же значением, что и исходный HTML-код, с которым оно было обработано.

Если сервер реализует контрмеры, такие как очистка входных данных, контрольные суммы, хеширование, шифрование и т. Д., Использование может быть несколько более безопасным. Например, ASP.NET делает это с ViewState.

Тем не менее ...

Хотите увидеть, насколько это небезопасно? Измените один из атрибутов типа ввода скрытого поля с «скрытого» на «текст» с помощью инструментов разработчика Chrome или Firefox и просмотрите текстовое поле (где вы можете изменить его и передать любое значение по своему усмотрению).

Я бы также настоятельно рекомендовал прочитать ответы Мэтта на анализ потенциального риска в его ответе.

0 голосов
/ 22 февраля 2012

В дополнение к тому, что сказал Крис Шейн:

Каков уровень риска или потенциального воздействия? В зависимости от предположений, сделанных серверным сценарием, последствия могут быть довольно серьезными,Если скрытое поле содержало, скажем, user_id или username и предполагалось, что эта информация была законной, тогда любой мог выполнять действия от имени кого-либо еще, просто изменяя поля формы, как объяснил Крис Шейн.

0 голосов
/ 22 февраля 2012

Скрытые поля - это просто проблема с графическим интерфейсом - вы не видите их на экране, но они все еще там. Это делает их такими же уязвимыми, как и любое другое (видимое) поле. Вот почему они не считаются «лучшей практикой».

...