Как войти в базу данных с помощью сценария надежно?

Windows отображает свой вывод в гибибайтах (2^30 байты), тогда как дисковая утилита отображает свой вывод в гигабайтах (10^9 байты). Фактическое пространство, о котором сообщают, является тем же, только в различных единицах.

6
23.08.2013, 21:55
4 ответа

Я действительно не испытан с базами данных Oracle (или базами данных в этом отношении), но кажется, что решение для Perl возможно с кошельком Oracle как показано здесь (база данных оракула "критериев поиска Google вход в систему без пароля").

2
27.01.2020, 20:29

Параметры командной строки могут быть считаны любым через /proc/<pid>/cmdline. Для процессов, которые сразу выходят, их можно все еще показать кому-то, кто использует a ps- как программа мониторинга.

Пароли в памяти, с другой стороны, не должны быть проблемой. Память не может, получил доступ без прав суперпользователя, и безопасное программное обеспечение обычно перезаписывает пароли в памяти прежде, чем освободить ее к другим процессам.

Наиболее распространенный способ состоит в том, чтобы использовать полномочия файла. Пароль входит в файл, который может только читать тем, кто бы ни, как предполагается, может к. Таким образом учетные данные как файл (быть этим ключ или пароль) безопасны от общих утечек cmdline.

1
27.01.2020, 20:29
  • 1
    /proc/<pid>/environ установлен 400 (только для чтения владельцем). Я сомневаюсь, что существует любое законное средство прямого чтения чужих огибающих переменных, так, чтобы метод был, вероятно, более безопасным, чем помещение его в файле. –  goldilocks 23.08.2013, 22:00
  • 2
    Возгласы, должно быть, имел неправильный pid при тестировании затем.:) Спасибо за исправление. Мог бы быть передан дочерним процессам, хотя..., который, вероятно, не имеет база данных. –  frostschutz 23.08.2013, 22:02
  • 3
    @goldilocks я немного смущен..., можно ли подробно остановиться, почему использование огибающей переменной могло быть более безопасным? Если бы я хочу узнать больше об этой теме, как я формулировал бы это (скажите в поиске Google)? –  user1766760 23.08.2013, 22:32
  • 4
    @user1766760: Одна причина состояла бы в том, что с файлом, пароль постоянно хранится где-нибудь (и я предполагаю в простом тексте!). Если кто-то получает физический доступ к системе (например, крадет Ваш ноутбук), полномочия файла не сохранят Вас. С огибающей переменной это находится только в памяти при необходимости, и это "ограничено по объему", которым я подразумеваю, что это только видимо к подоболочкам, к которым это было exportредактор, если Вы собираетесь установить подобные вещи от командной строки, не сохраняет постоянное .bash_history, или иначе Ваш пароль закончится в простом тексте в дисковом файле... –  goldilocks 23.08.2013, 22:41
  • 5
    Какая огибающая переменная - это так или иначе? cmd $VAR командная строка снова, таким образом, это бесполезно. Это должно было бы поддерживаться рассматриваемым клиентом. Также, по крайней мере, согласно dev.mysql.com/doc/refman/5.0/en/password-security-user.html переменные среды не считают безопасными также. –  frostschutz 23.08.2013, 22:47

Необходимо разделить командную строку, которая открывает клиент DB и passwd представление. Конечно, другой RDBMSs/clients будет работать по-другому. Вот пример для sqlplus (утилита командной строки ORCL по умолчанию):

sqlplus /nolog<<!!

connect $USER/$PASSWD@$SID;

...
--some SQL
...

!!

если Вы делаете это, ps не покажет passwd в списке процессов.

0
27.01.2020, 20:29
  • 1
    Это - тот же ответ, который Вы дали по этому вопросу: stackoverflow.com/a/13478804/33204, таким образом, я назвал бы его тот же путь @DavidAldridge, сделал на этом stackoverflow Q и указывает, что это не хороший способ скрыть Ваши пароли. Большинство предприятий строго запрещает выполнение его этот путь. –  slm♦ 24.08.2013, 00:05

Согласно лучшим практикам вы не должны хранить пароли в виде открытого текста на диске или в памяти. Переменные среды также проблематичны. Представьте, что производственная система запускает программу мониторинга, которая периодически выполняет «ps auxwwe» и записывает вывод в файл журнала. Ваши учетные данные sqlplus будут случайно записаны в журналы монитора, которые могут быть доступны для чтения всем. Чаще всего журналы отправляются в Splunk / ElasticSearch / Hadoop / Loggly.

Я написал программу, которая безопасно передает учетные данные через файловые потоки здесь: https://github.com/ryanchapman/safe_sqlplus

После отправки учетных данных в программу sqlplus safe_sqlplus обнуляет часть памяти где они хранились.

1
27.01.2020, 20:29

Теги

Похожие вопросы