Безопасный способ хранения сторонних баз данных / учетных данных API через Laravel - PullRequest
0 голосов
/ 26 мая 2019

Я работаю над приложением Laravel, которое должно позволить пользователю вручную добавлять интеграцию в сторонние API и базы данных. С API это просто: вам нужно только сохранить токен. Но пользователь также должен иметь возможность добавить интеграцию со своими собственными базами данных, такими как MySQL. Для этого мне нужно будет хранить хост, пользователя, пароль, в основном все учетные данные. У меня проблема с поиском правильного и безопасного способа хранения этих учетных данных.

Я думал о том, чтобы сохранить все соединения в таблице connections, добавить учетные данные в поле типа connection_parameters JSON (чтобы была гибкость, и разные типы соединений можно было хранить в одной и той же таблице) и скрытие деталей с помощью свойства $hidden в модели. Это было бы первым шагом к безопасному способу их хранения, но я не уверен, что этого достаточно.

Есть ли у вас какие-либо предложения или практики, которые вы могли бы мне объяснить?

1 Ответ

0 голосов
/ 27 мая 2019

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

Один из способов - зашифровать их перед сохранением.Laravel поставляется с шифрованием / дешифрованием "из коробки" https://laravel.com/docs/5.8/encryption.

Другое решение - хранить учетные данные каждого пользователя в файле и хранить файл в любом каталоге, кроме общедоступного (например, /storage/connections).).Таким образом, только вы можете получить доступ к этим файлам.Каждый файл может иметь имя, например, user_1234 1234, являющееся идентификатором пользователя.Так что это легко восстановить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...