Защита от взлома базы данных (перец)
Мне предстояла задача защитить данные от подделки на случай взлома или угона базы данных (postgres).
Есть таблица которая защищает urls для доступа по ролям (примерно как spring-boot security).
В таблице колонки:
path: защищенный путь /account
roles: массив ролей {admin,user}
hash: верификация данных (roles + pepper)
Я не просто так дописал pepper для roles.
Исходя из моей задумки, в коде веб-приложения(не доступный хакеру), зашит перец для хэша, который состоит из массива ролей + сам перец.
Необратимый хэш формируется в коде непосредственно перед вставкой в базу.
При обращении к защищенному url происходит проверка указанных ролей и хэша на их основе.
Если хакер угоняет базу, то это не страшно, но если он найдет дыру для инжекта, и например добавляется/изменяется роль на более доступную, например guest, то запрос сразу считается невалидным. Тоже самое и с хэшем.
Предположительно хакер не сможет сгенерировать новый хэш с новыми ролями, так у него нету перца. Соответсвенно взлом невозможен. Или возможен?
Мне сложно здесь описать всю логику, но она уже сделана и работает.
Если вы сможете понять, пожалуйста укажите мне на ошибки моего подхода или это вообще бессмысленно и есть гораздо более грубые методы взлома.
Еще раз: моя задача была защитить от инжекта таблицу с урлами, которые защищенны доступом по ролям.