|
2 / 2 / 0
Регистрация: 04.01.2019
Сообщений: 27
|
||||||
Как не хранить логин и пароль в коде в открытом виде?25.09.2019, 15:15. Показов 14579. Ответов 25
Метки нет (Все метки)
Добрый день.
Не могу сразу сориентироваться, очень много разной информации. Попробую сформулировать свою конкретную "боль". Есть класс, в котором есть методы для подключения к конкретной БД и возврате нужного значения. Пользователь уже создан во всех БД с одинаковыми логином и паролем, например test/qwerty вот обрезанный фрагмент:
Вопрос: как правильно реализовать хранение логина/пароля при такой реализации? Интересует конкретный пример или толковое описание. Заранее благодарен.
0
|
||||||
| 25.09.2019, 15:15 | |
|
Ответы с готовыми решениями:
25
Где хранить логин и пароль пользователя mssql + Android логин пароль где хранить? |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 25.09.2019, 15:22 | |
|
в пропертях или в енвайронменте
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.09.2019, 15:34 | |
|
KMA7, чем мешает что пароль записан в коде?
0
|
|
|
2745 / 2054 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
|
|
| 25.09.2019, 16:23 | |
|
KMA7, хранить в коде уже зашифрованную строку))
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 25.09.2019, 16:38 | |
|
0
|
|
|
2745 / 2054 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
|
|
| 25.09.2019, 16:40 | |
|
0
|
|
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
| 25.09.2019, 21:00 | |
|
Мне мнавится идея на счет проперти, хотя тоже есть минусы.
Зачем вообще хранить пароль? Можно просто запрашивать у пользователя.
0
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 25.09.2019, 22:24 | |
|
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.09.2019, 22:33 | |
|
Где хранить пароли и как с ними работать зависит от конечной цели. Для каких-то целей можно в коде хранить, для других в пропертях, в некоторых случаях лучше хранить пароль как char[] а не как String (т.к строки немутабельные объекты и следовательно пароль будет доступен для дампа памяти пока его не соберет GC).
Так же помнится был какой-то специальный класс javax.security вроде для паролей, но я хз как он работает с разными фреймворками. Вобщем вопрос в отрыве от контекста не имеет смысла.
0
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|||
| 25.09.2019, 23:02 | |||
|
Добавлено через 1 минуту
0
|
|||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||
| 26.09.2019, 09:28 | |||
|
Добавлено через 49 секунд
0
|
|||
|
Модератор
|
|
| 26.09.2019, 10:58 | |
|
А чем не прямое хранение логина/пароля спасет от той же декомпиляции и вытаскивания данных из кода? Если его из кода не вытащить или памяти, то можно используя например java agent перехватить запрос на сервер и вытащить оттуда.
0
|
|
|
2 / 2 / 0
Регистрация: 04.01.2019
Сообщений: 27
|
|
| 26.09.2019, 14:16 [ТС] | |
|
Подскажите, пожалуйста, а как тогда правильно организовывать хранение паролей?
У меня такая ситуация - пусть есть анонимный пользователь, для него есть read-only УЗ в БД, по которой он может делать селекты к некоторым таблицам. У меня используется в автотестах, но пример с пользователем, который запрашивает наличие товара на складе в интернет-магазине - очень похож. Т.е. какой-то набор дефолтных действий, доступный всем. Просто хранить в коде - разрабы (PHP) закидали какахами, после того, как я запушился :black_eye.: Сейчас, я, скорее всего, использую хранение в config.properties, доступ к которому будет ограничиваться средствами ОС. Но теперь даже интересно становится, кто как в продакшн среде это делает (чтобы и от декомпиляции, и от вытаскивания данных из кода или памяти, и от перехвата запроса на сервер). Хранение распечаток в ящике стола не предлагать
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 26.09.2019, 14:20 | |
|
если у кого-то будет доступ к продакшн среде, то он наверняка найдет способ получить все, что ему нужно. Так что ты решаешь какие-то надуманные проблемы
0
|
|
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|||
| 26.09.2019, 15:22 | |||
![]() Логика такая : если опасно хранить в коде потому что можно его "прочитать" с дампа памяти на этом компьютере, то на этом комьютере также можно прочитать проперти файл, путь обращения, прописаный тут же, к какому либо файлу (где хранится ключ), или сам ключ с дампа памяти (мы же будем его "читать" на предмет того подходит ли он нам, откуда бы он к нам не попал). Практика : комп можно взламать (рас дамп кто-то читает), или я с открытой сети (ноут, телефон), или вообще в интернет-кафе с чужого компа хочу купить билет и мне надо доступ к счету. Я же не буду там хранить пароль?! ![]() Добавлено через 14 минут
0
|
|||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||
| 26.09.2019, 15:53 | |||
|
Приведу простой пример. Ты написал сервер и задеплоил его на удаленную виртуалку. Доступ к ней защищен, все как надо. Однако ты используешь спринг бут и у тебя есть actuator. Это очень удобная штука чтобы решать разные проблемы. И ты по запарке или по незнанию забыл закрыть апи актуатора паролем. Или дал какой-то простой пароль. Теперь я могу сделать дамп памяти твоего сервера, не заходя на сервер и вообще не имея на него доступ. Просто выполнить запрос, зная что у тебя есть актуатор и получить обратно файлик. Смысл в том, что чем сложнее система и чем больше модулей она включает (а особенно если её разрабатывает команда или несколько команд), тем больше вероятность получить где-то дыру в защите или много мелких дырочек, по одиночке ни на что не влияющих, но вместе позволяющий провести атаку на сервер. В данном случае речь идет о 2х вобщем то не критчиных вещах. 1. Нет пароля на актуатор 2. БД не сидит за VPN (но имеет сложный пароль) По отдельности это серьезные, но не критичные проблемы, однако вместе они дают полный доступ к твоему серверу. PS. Все вышесказанное, конечно не относится к пет проектам студентов, а имеет смысл для действительно больших энтерпрайз решений.
3
|
|||
|
129 / 108 / 24
Регистрация: 11.07.2017
Сообщений: 274
|
|
| 26.09.2019, 16:17 | |
|
А разве java не позволяет хранить хэш MD5 и сверять хэш пароля с ним?
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 26.09.2019, 17:05 | |
|
rvs_dk, как это должно помочь мне подключиться к бд?
0
|
|
|
Модератор
|
||
| 26.09.2019, 19:06 | ||
|
Нечто похожее автору и стоит в итоге реализовать и использовать, если уж пароль хранить в коде не хочется, а все остальные способы хранения пароля легко будут дампится. Еще как вариант использовать несимметричное шифрование с парой ключей.
0
|
||
| 26.09.2019, 19:06 | |
|
Помогаю со студенческими работами здесь
20
Где хранить логин и пароль (авторизация на сайте) Где хранить логин и пароль для входа в веб-приложение? Регистрация - в каком месте в коде и как происходит запись введённой информации (логин, пароль, почта) в базу данных? Вводится строка, содержащая команду вида: ftp://логин:пароль@адрес_сервера. Написать программу, которая из введенной строки выделяет логин, пароль и а Как убрать логин и пароль? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|