Форум программистов, компьютерный форум, киберфорум
Безопасность сайтов и серверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5

Безопасность передачи хешированных данных в поле type='hidden' формы HTML

28.08.2020, 23:13. Показов 2057. Ответов 8

Студворк — интернет-сервис помощи студентам
Всем привет. Интересует вопрос, связанный с безопасностью передачи данных.
Рабочая схема:
Существует форма регистрации на php. Для верификации юзера использую подтверждение номера телефона по смс. Код для верификации агрегатор формирует сам и передает мне в ответе на http-запрос. Через php-обработчик формы, код, полученный от агрегатора я хеширую MD5 и подставляю в скрытое поле формы hidden и далее вместе с данными регистрации передаю на страницу подтверждение кода юзером. Естественно я понимаю, что узнать юзеру это хешированный код, подсмотрев html-код не составит труда.
В последнем обработчике формы и хеширую введенный юзером код подтверждения и сравниваю со значением поля hidden. То есть я сравниваю два хешированных значения.
Вопрос: насколько безопасна данная схема, и если нет, то куда можно безопасно спрятать полученный от агрегатора код, чтобы потом его вытащить и сверить с введенным кодом от юзера?

p.s. палками не бейте сильно, я только учусь
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.08.2020, 23:13
Ответы с готовыми решениями:

Безопасность передачи данных
Здравствуйте форумчане! Я тут пишу клиент-серверную программку, общение клиента и сервера происходит путем передачи JSON объекта. Вы...

Безопасность передачи данных в WCF
Доброго времени суток. Передача данных каким-либо способом защищается в WCF-приложении? Если да, то каким образом это можно использовать?...

Безопасность передачи данных от клиента к серверу UUID
JavaScript/Php!? Как создать UUID, надо передавать данные от клиента к серверу и обратно в зашифрованном виде?

8
16 / 12 / 4
Регистрация: 12.10.2019
Сообщений: 35
29.08.2020, 14:52
Лучший ответ Сообщение было отмечено wertun как решение

Решение

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

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

а) Сменить алгоритм MD5 на что-то более надежное, например, SHA256 или SHA512.
б) Использовать хеширование с полудинамической солью, например, так,

HASH = SHA256(MD5('YYYY-MM-DD').'S0m3Str0ngK3Y?'.CODE)

Добавлено через 6 минут
Даже, наверное, так:

HASH = SHA256(MD5('SomeEasyKey'.'YYYY-MM-DD').'S0m3Str0ngK3Y?'.CODE)
1
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5
29.08.2020, 17:39  [ТС]
N3utr1no, спасибо!
Не подумал, что если сильно надо, то значение скрытого поля можно поменять. Это главное, и тут уже не так важен способ хеширования.

Если спрячу код в переменную сессии, к тому же если его также предварительно зашифровать, то как я понимаю это будет более безопасно, так как переменные сессии хранятся на сервере, верно размышляю?
0
16 / 12 / 4
Регистрация: 12.10.2019
Сообщений: 35
29.08.2020, 19:33
Да, верно. Однако шифруйте сложнее, чем md5. С сессиями есть только два момента. Первый - если Вы размещаете свой сайт на shared хостинге, то имена сессий могут зачастую стать известными для других сайтов на сервере. Соответственно, если указанный код используется для чего-то типа оплаты, то сессию надо шифровать и, желательно, привязывать хотя бы к части IP адреса посетителя. Второе - использование сессий требует использования кук (cookies) и, соответственно, Вам потребуется размещать сообщение о том, что для нормальной работы Вашего сайта требуется их разрешить.
1
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5
29.08.2020, 21:03  [ТС]
N3utr1no, спасибо за ответ!
Не нашел в инете доступно объясняющую инфу о превосходстве SHA над MD5? В проекте использую двойной MD5. А чем SHA отличается от него, у них же вроде одинаковые методы как я понял.

Цитата Сообщение от N3utr1no Посмотреть сообщение
Первый - если Вы размещаете свой сайт на shared хостинге, то имена сессий могут зачастую стать известными для других сайтов на сервере.
Для всех сайтов виртуального хостинга или всех моих сайтов на данном хостинге?

Цитата Сообщение от N3utr1no Посмотреть сообщение
и, желательно, привязывать хотя бы к части IP адреса посетителя.
А насколько это актуально, если IP пользователя может часть меняться, так как данный вопрос имеет отношение в первую очередь к Web-приложению на мобильной основе (а у смартфонов может часто происходить смена сети (3G, 4G, wi-fi))? Не хотелось бы чтобы пользователя постоянно выкидывало.
В настоящий момент для защиты использую хеш полученный при авторизации и записанный в БД, и сравнивается с COOKIE при каждом обращении пользователя к серверу.
0
16 / 12 / 4
Регистрация: 12.10.2019
Сообщений: 35
29.08.2020, 22:19
Для сайтов хостинга. Тут все зависит от настроек, но, например, на серверах, использующих cpanel, это так. Если не хотите привязывать к IP, добавьте как минимум еще одну генерируемую куку.
1
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5
29.08.2020, 22:22  [ТС]
N3utr1no, просто еще одну такую же куку и в БД ее значение занести?
У меня ipsmanager
0
16 / 12 / 4
Регистрация: 12.10.2019
Сообщений: 35
29.08.2020, 23:20
Нет, просто в сессию. Там фишка в том, что зачастую папка, в которой лежат файлы сессии, доступны для листинга всем. За счет этого те, у кого есть доступ к соседним сайтам, могут узнать, какие сессии были недавно активны на Вашем сайте. Но вот содержимое сессий они не видят. Соответственно, если будете давать юзерам генерированную куку и дублировать ее содержимое в сессии, Вы сможете защититься от "соседей".
0
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5
30.08.2020, 08:55  [ТС]
N3utr1no, Спасибо! Учту этот момент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2020, 08:55
Помогаю со студенческими работами здесь

Сетевая безопасность при передачи данных в сети Интернет
Здравствуйте помогите пожулуста. Работаю в офисе со своего ноутбука подключен к роутеру по лан порту Wi-Fi не использую дальше выход в...

HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?
HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?

Удаляется переменная PHP при передачи формы HTML
Добрый день. Подскажите где ошибка. Должно быть так, запускается страница и рандомиться число. А пользователь должен угадывать, если...

js аналог html - формы type = number
есть ли js (jquery) аналог html-формы <input type = 'number'> в виде, указанном на картинке (т.е. кнопочки "вверх" и...

input type=hidden
Можете ли приветсти пример когда применяется input c type=hidden?Зачем он служит


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru