Где сохранить учетные данные базы данных в веб-приложении?

() означает «Сверление». Это означает скучный тип, который содержит одно, а также скучное. Нет ничего интересного в сравнении одного элемента бурильного типа с другим, потому что нет ничего, чтобы узнать о элементе скучного типа, обратив его на ваше внимание.

Это совсем другое из пустого типа, называемого (по желанию людей, я выбрал лучшее имя, подобное тому, которое я предложил) в Haskell Void. Пустой тип очень интересен, потому что, если кто-то когда-либо дает вам ценность, принадлежащую ему, вы знаете, что вы уже мертвы и на небесах, и что все, что вы хотите, принадлежит вам.

Но если кто-то даст вам значение в (), не возбуждаются. Просто выбросьте его.

Иногда бывает интересно использовать конструкторы типов, параметризованные «типом элемента» и заполнить параметр с помощью (). Вы можете видеть, какая информация присуща конструктору типа, а не исходя из элементов. Например, Maybe () является версией Bool, с Just () или Nothing. Кроме того, [()] составляет (возможно, бесконечное) натуральное число: единственная информация, которую вы имеете, - это длина.

Итак, () означает «Скучно», но часто бывает, что что-то интересное где-то в другом месте.

16
задан shsteimer 17 February 2009 в 19:24
поделиться

6 ответов

Так как Вы оставляете вопрос открытым для платформы, я добавлю, что учетные данные базы данных для приложений.NET хранятся в web.config файле. От версии 2.0 и выше, существует определенный раздел ConnectionStrings, который допускает более легкий программный доступ к строке подключения.

В дополнение к наличию IIS автоматически блок прямые запросы в web.config файл по умолчанию, можно также использовать команду IIS для шифрования раздела ConnectionString web.config файла. Это шифрование является конкретной машиной, добавляя к ее преимуществам, и время выполнения.NET также дешифрует строку подключения на лету при доступе к нему таким образом, нет никакой потребности в дополнительном кодировании в рвении с ним.

8
ответ дан 30 November 2019 в 22:02
поделиться

С Java пулы соединения с базой данных должны быть переданы в веб-приложения контейнером. Это находится в стандарте, заявляемом в WEB-INF/web.xml как ресурсы. То же относится к почтовым сессиям и другим внешним ресурсам, которые могут варьироваться от установки до установки. Ищите JNDI для получения дополнительной информации об этом)

, хорошая часть с этим - то, что приложение не заботится о том, как на самом деле соединиться с чем-либо снаружи. Это не будет видеть паролей, потому что сам контейнер будет использовать их.

У кота это настроено любой из файлов контекста (например). в conf/Catalina/localhost/, conf/server.xml или - предпочтительно только для dev сред, от веб-приложений META-INF/context.xml. Другие среды имеют свое собственное расположение конфигурации или приложение.

шифрование паролей на самом деле зависит от контейнера. Tomcat хранит их в простом тексте, но само приложение не будет видеть его. Я не знаю о механике в других средах.

5
ответ дан 30 November 2019 в 22:02
поделиться

На стеке Microsoft вещи могут быть очень хорошими.

Вы создаете учетную запись пользователя сети в Active Directory почти ни с какими полномочиями. Вы настраиваете IIS для выполнения веб-приложения как тот пользователь. Вы допускаете что пользовательский доступ для чтения к веб-папкам и файлам на диске. Вы настраиваете SQL Server, чтобы допустить, что пользовательские полномочия чтения-записи на таблицах Вы хотите. И в строке подключения, Вы даете клиенту дб команду соединяться как учетная запись пользователя, которая веб-приложение в настоящее время выполняется как.

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

4
ответ дан 30 November 2019 в 22:02
поделиться

В Django учетные данные находятся в Вашем settings.py конфигурационный файл. Так как это обычно не сохраняется в Вашем /var/www/ дерево каталогов, это очень безопасно.

кроме того, единственное приложение Django может использоваться (и снова использоваться) для многих веб-сайтов или веб-серверов на том же хосте, каждом со своими собственными отличными настройками. Так settings.py конфигурация не связывается приложением, но является частью единственного развертывания приложения.

1
ответ дан 30 November 2019 в 22:02
поделиться

Для asp.net:

я храню глобальные параметры, такие как строка подключения и пути к репозиторию в Реестре и затем ссылке на ключ реестра в web.config.

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

1
ответ дан 30 November 2019 в 22:02
поделиться

Зависит от сервера приложений.

я обычно использую поиски JNDI для источника данных, таким образом, учетные данные хранятся на сервере приложений, который обрабатывает пул соединения. Никакая потребность поместить что-либо кроме имени JNDI в конфигурации тот путь.

Да, пароль шифруется на WebLogic.

На вещах Tomcat может быть рискованным. Информация о соединении находится в META-INF/context.xml, что означает простой текст для пароля. Я только делаю это для разработки, никогда в производстве.

3
ответ дан 30 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

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