Я читал учебное пособие по ASP.NET и сторонним API, и он упомянул, что API KEY и SECRET KEY должны храниться в файле web.config для обеспечения безопасности на рабочих серверах, а не в классах, которые их используют. Однако я не совсем уверен, что более безопасно для файла web.config, чем для класса? Я понимаю удобство хранения его в файле конфигурации, но я не вижу преимущества безопасности?Является ли web.config более безопасным, чем класс?
ответ
Для начала вы можете быстро обновить ключ 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 для каждой машины, с течением времени это будет сложно, потому что вы должны синхронизировать их все.
Вы можете зашифровать отдельные части вашего web.config.
Вот запись в блоге о суперлегком способе сделать это.
http://odetocode.com/blogs/scott/archive/2006/01/08/encrypting-custom-configuration-sections.aspx
Существует не преимущество безопасности. Существует удобство, так как вам не нужно перекомпилировать классы, которые используют эти значения, в случае их изменения.
С точки зрения безопасности классы имеют одинаковый уровень безопасности. Файлы web.config и любые файлы классов (в App_Code) или скомпилированные сборки (в папке bin) не смогут быть загружены (эти каталоги не сопоставляются с виртуальными каталогами, с которыми пользователи могут загружаться).
Если они получены, однако, на них нет никакой безопасности. Файлы web.config легко читаются, и с помощью таких инструментов, как Reflector, легко увидеть константы, которые у вас есть в сборной сборке.
Единственное преимущество, которое имеет web.config над сборкой сборки, заключается в том, что вы можете шифровать разделы файла web.config, как Scott Guthrie points out in his blog.
Если он живет только на web.config на сервере, он также не находится на каждом компьютере разработчика. Это делает его более безопасным, так как ваш риск утечки секретов уменьшается.
- 1. Является ли web.config более безопасным, чем база данных?
- 2. является mt_rand() более безопасным, чем rand()
- 3. Является ли ASP.NET более безопасным, чем другие языки?
- 4. Является ли этот класс потоком безопасным?
- 5. Является ли этот класс класса Java безопасным?
- 6. Является ли HTML5 безопасным для Javascript игр (более безопасным)?
- 7. Является ли класс Tcpclient/Tcplistner более быстрым, чем класс сокетов
- 8. Является ли этот класс потоком безопасным: com.orionserver.http.OrionHttpJspPage
- 9. Является ли следующее безопасным?
- 10. Является ли '===' более эффективным, чем '! =='?
- 11. Является ли constexpr более «постоянным», чем const?
- 12. Является ли const_cast безопасным?
- 13. Является ли замок() безопасным?
- 14. Является ли java.nio.file.Files.write (...) безопасным?
- 15. Является ли это безопасным?
- 16. Является ли org.springframework.jms.support.converter.MappingJackson2MessageConverter потоком безопасным?
- 17. Является ли SoapHttpClientProtocol потоком безопасным?
- 18. Является ли com.google.cloud.datastore.Datastore потоком безопасным?
- 19. Является ли Web.Config культурой-инвариантом?
- 20. Является ли ConcurrentHashMap полностью безопасным?
- 21. Является ли Socket.SendAsync потоком безопасным?
- 22. Является ли System.Runtime.Serialization.DataContractSerializer потоком безопасным?
- 23. Является ли NSPersistentStoreCoordinator Thread безопасным?
- 24. Является ли python более безопасным в приложении с толстым клиентом.
- 25. Является ли этот более короткий yaml-выход безопасным
- 26. Является ли «const» двойное копирование + сравнение безопасным?
- 27. Является ли метод getMethod безопасным?
- 28. Является ли атрибут AllowHtml безопасным
- 29. Является ли console.writeline потоком безопасным?
- 30. Является ли memcpy безопасным процессом?