Является ли web.config более безопасным, чем класс? - PullRequest
3 голосов
/ 16 апреля 2010

Я читал учебник по ASP.NET и сторонним API, и в нем упоминалось, что API KEY и SECRET KEY должны храниться в файле web.config для безопасности на производственных серверах, а не в классах, которые их используют , Тем не менее, я не совсем уверен, что более безопасно в файле web.config, чем класс? Я понимаю удобство хранения его в файле конфигурации, но я не вижу преимущества безопасности?

Ответы [ 4 ]

6 голосов
/ 16 апреля 2010

Для начала вы можете быстро обновить ключ API в файле web.config. Вам придется заново скомпилировать класс и повторно использовать класс.

Вы также можете зашифровать разделы раздела web.config, начиная с asp.net 2.0

http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx

Если вы можете сохранить его на machine.config, это обеспечит его работу только на этой машине, а не где-либо еще. Web.Configs нужно размещать в каждой среде, и, хотя вы можете сохранить web.config для каждой машины по-разному, со временем это будет сложно, потому что вы должны синхронизировать их все.

1 голос
/ 16 апреля 2010

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

1 голос
/ 16 апреля 2010

Вы можете зашифровать отдельные части вашего web.config.

Вот запись в блоге о супер простом способе сделать это.

http://odetocode.com/blogs/scott/archive/2006/01/08/encrypting-custom-configuration-sections.aspx

0 голосов
/ 16 апреля 2010

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

С точки зрения безопасности классы имеют одинаковый уровень безопасности. Web.config и любые файлы классов (в App_Code) или скомпилированные сборки (в папке bin) не смогут быть загружены (эти каталоги не сопоставлены с виртуальными каталогами, из которых люди могут загружать файлы).

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

Единственное преимущество web.config перед скомпилированной сборкой состоит в том, что вы можете шифровать разделы файла web.config, как указывает Скотт Гатри в своем блоге .

...