|
0 / 0 / 0
Регистрация: 28.08.2020
Сообщений: 5
|
|
Безопасность передачи хешированных данных в поле type='hidden' формы HTML28.08.2020, 23:13. Показов 2057. Ответов 8
Всем привет. Интересует вопрос, связанный с безопасностью передачи данных.
Рабочая схема: Существует форма регистрации на php. Для верификации юзера использую подтверждение номера телефона по смс. Код для верификации агрегатор формирует сам и передает мне в ответе на http-запрос. Через php-обработчик формы, код, полученный от агрегатора я хеширую MD5 и подставляю в скрытое поле формы hidden и далее вместе с данными регистрации передаю на страницу подтверждение кода юзером. Естественно я понимаю, что узнать юзеру это хешированный код, подсмотрев html-код не составит труда. В последнем обработчике формы и хеширую введенный юзером код подтверждения и сравниваю со значением поля hidden. То есть я сравниваю два хешированных значения. Вопрос: насколько безопасна данная схема, и если нет, то куда можно безопасно спрятать полученный от агрегатора код, чтобы потом его вытащить и сверить с введенным кодом от юзера? p.s. палками не бейте сильно, я только учусь
0
|
|
| 28.08.2020, 23:13 | |
|
Ответы с готовыми решениями:
8
Безопасность передачи данных Безопасность передачи данных в WCF
|
|
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 отличается от него, у них же вроде одинаковые методы как я понял. В настоящий момент для защиты использую хеш полученный при авторизации и записанный в БД, и сравнивается с 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
|
|
| 30.08.2020, 08:55 | |
|
Помогаю со студенческими работами здесь
9
HTML!? Есть поле ввода Type text, после ввода текста и нажатия entrer теряется фокус, как его оставить в этом же поле?
js аналог html - формы type = number input type=hidden Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|