Хранение конфиденциальных данных с помощью Drupal

Мне нужно использовать конфиденциальные данные с Drupal для использования пользовательского модуля. Если я просто установлю их через графический интерфейс, они будут храниться в незашифрованном виде в базе данных. Любой, кто имеет к ней доступ, будет иметь доступ к моим конфиденциальным данным.

На данный момент я вижу два решения:

  1. Найдите способ безопасного хранения этих учетных данных в базе данных;
  2. Поместите эти конфиденциальные данные в файл verify_inc.php, включите его в settings.php, чтобы установить переменные, которые мог бы использовать мой пользовательский модуль, и убедитесь, что никто другой не сможет прочитать файл.

Какое решение лучше, по вашему мнению? Что ты порекомендуешь? Есть ли другой лучший вариант?

С наилучшими пожеланиями.


person Korchkidu    schedule 29.04.2011    source источник
comment
Какие конфиденциальные данные и нужно ли вам в какой-то момент прочитать их обратно на экран?   -  person k to the z    schedule 29.04.2011
comment
Учетные данные для доступа к внешним веб-сервисам. И нет, нам не нужно их отображать. Они нам просто нужны для пользовательского модуля, чтобы использовать внешний веб-сервис.   -  person Korchkidu    schedule 29.04.2011


Ответы (3)


Я бы начал с использования модуля SecurePages, чтобы убедиться, что данные, введенные где-то по пути, не отслеживаются.

Затем, чтобы зашифровать информацию, попробуйте использовать php mcrypt с кратким примером того, как зашифровать и расшифровать.

Как только информация будет защищена, у вас не должно возникнуть проблем с сохранением данных в структуре базы данных drupal. Кроме того, важное примечание: вы можете проверить hook_init() вместо того, чтобы пытаться добавить что-то в settings.php. Это вообще плохая практика.

person ohmusama    schedule 29.04.2011
comment
Спасибо за этот ответ. Здесь много информации ;). Может быть, модуль шифрования делает все это за меня напрямую... Надо будет проверить самому. - person Korchkidu; 30.04.2011
comment
Вполне возможно. Это просто зависит от того, сколько контроля вы хотите и сколько кода вы хотите сделать. Если модуль шифрования делает большую часть работы за вас, я бы определенно использовал его, но я бы все же использовал SecurePages в качестве обязательного. - person ohmusama; 30.04.2011
comment
Я приму ваш ответ, так как я считаю его наиболее полным. Не могли бы вы просто добавить примечание о модуле шифрования, пожалуйста? - person Korchkidu; 01.05.2011
comment
Установите модуль Encrypt, после этого перейдите в admin/settings/encrypt, установите тип шифрования на Basic, если у вас нет mcrypt phpmod, или AES, если у вас есть mcrypt phpmod. Затем в вашем коде вам нужно только использовать $encrypted_string = encrypt($string), а затем сохранить его в db (тип BLOB) $decrypted_string = decrypt($encrpyted_string), чтобы расшифровать его. Посетите drupal.org/project/encrypt. - person ohmusama; 01.05.2011
comment
Мне еще раз. После некоторого дополнительного поиска и тестирования кажется, что использование файла settings.php + include inventory.inc — не такая уж плохая идея. На самом деле, если Drupal скомпрометирован, а ваш сервер — нет, вы все равно в безопасности. Если ваш сервер скомпрометирован, вы облажались ;) Я бы явно пересмотрел, какую технику использовать... - person Korchkidu; 05.05.2011

Модуль шифрования предоставляет API, который поддерживает несколько различных методов шифрования, включая mcrypt (если он у вас включен). .

person Matt V.    schedule 29.04.2011
comment
Спасибо за ссылку! Я посмотрю этот модуль. - person Korchkidu; 30.04.2011

Модуль шифрования — отличный способ шифрования конфиденциальных данных в Drupal. Однако этот модуль не обеспечивает адекватного управления ключами (он хранит ключ шифрования в базе данных Drupal — подобно хранению ключей от вашего дома под приветственной циновкой).

Наряду с шифрованием вам также понадобится дополнительный модуль, такой как Подключение ключа безопасности Townsend, которое позволяет вам управлять ключами шифрования вне базы данных Drupal в диспетчере ключей шифрования (HSM, Cloud, VMware и т. д.). Просто помните: если вы неправильно управляете своими ключами шифрования, вы неправильно шифруете свои данные.

Полное раскрытие: я работаю с Townsend Security в команде Drupal.

person geetarluke    schedule 24.06.2014