Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как Вы Защищаете database.yml?
В пределах Ruby на Rails приложения database.yml представляет собой обычный текстовый файл, который хранит учетные данные базы данных.
Когда я развертываю свои приложения Rails, у меня есть обратный вызов после развертывания в моем Capistrano рецепт, который создает символическую ссылку в каталоге приложения /config на файл database.yml. Сам файл хранится в отдельном каталоге, который находится вне стандартной структуры каталогов Capistrano /releases. Я chmod 400 файл, так что он читается только пользователем, который его создал.
- Достаточно ли этого, чтобы заблокировать его? А если нет, то чем еще вы занимаетесь?
- Кто-нибудь шифрует свои файлы database.yml?
Я решил эту проблему, поместив пароль базы данных в файл с правами на чтение только для пользователя, от имени которого я запускаю свое приложение. Затем в database.yml я использую ERB для чтения файла:
production:
adapter: mysql
database: my_db
username: db_user
password: <%= begin IO.read("/home/my_deploy_user/.db") rescue "" end %>
Работает лакомство.
Вы также хотите убедиться, что ваша система SSH хорошо защищена, чтобы предотвратить вход людей в систему как ваш бот Capistrano. Я бы предложил ограничить доступ к защищенным паролем парам ключей.
Шифрование файла .yml на сервере бесполезно, так как вы должны дать боту ключ, который будет сохранен . . . на том же сервере. Шифрование его на вашем компьютере, вероятно, хорошая идея. Капистрано может расшифровать его перед отправкой.
Взгляните на это решение github: https://github.com/NUBIC/bcdatabase . bcdatabase предоставляет зашифрованное хранилище, где пароли могут храниться отдельно от файлов yaml.
bcdatabase
bcdatabase-это библиотека и утилита что обеспечивает конфигурацию базы данных управление параметрами для Ruby на Rails приложения. Он обеспечивает простую механизм разделения базы данных атрибуты конфигурации от исходный код приложения так, чтобы нет никакого соблазна проверить это пароли в систему управления версиями система. И это централизует параметры для одного сервера так, чтобы их можно легко разделить между собой несколько приложений и легко обновляется одним администратором.
Даже если вы защищаете файл database.yml, люди все равно могут писать, используя те же учетные данные, если они могут изменить код вашего приложения.
Другой способ взглянуть на это: должно ли веб-приложение иметь большой доступ к базе данных. Если true, то понизьте разрешения. Дайте только достаточно разрешений для приложения. Таким образом, злоумышленник может сделать только то, что может сделать веб-приложение.
Если вы очень беспокоитесь о безопасности файла yml, я должен спросить: он хранится в вашей системе управления версиями? Если да, то это еще один момент, когда нападающий может добраться до него. Если вы делаете checkout/checkin над non-SSL, кто-то может перехватить его.
Кроме того, с некоторым контролем версий (svn, например), даже если вы удалите его, он все равно останется в истории. Таким образом, даже если вы удалили его в какой-то момент в прошлом, это все равно хорошая идея, чтобы изменить пароли.