Отключение режима отладки в ASP.NET - одна из вещей, упоминаемых даже в самых начинающих руководствах по безопасности ASP.NET. К сожалению, в проектах веб-сайтов режим отладки - единственный способ получить номера строк с трассировкой стека исключений: вы не можете просто включить PDB, оставив веб-сайт в режиме выпуска.
Номера строк в трассировках стека исключительно полезны при выяснении причины тех исключений, которые случаются только раз в месяц, которые возникают только в производственной среде.
На нашем сервере используются специальные обработчики ошибок, и трассировка отключена. Существуют ли другие способы, которыми режим отладки может нанести ущерб безопасности?
Выпуск PDB дает возможность легко реконструировать исходный код ваших программ. Я полагаю, что для вашей установки у вас будет скомпилированный код, работающий на сервере, которым вы владеете и защищаете. Кроме того, информация трассировки стека будет защищена системой безопасности вашего сервера базы данных.
Проблема безопасности возникает из-за аналогичных рассуждений о хешировании паролей. Если злоумышленник сможет проникнуть в вашу базу данных или на сервер, им будет легче украсть конфиденциальную информацию из вашего исходного кода.
Все дело в вашем аппетите к риску. Если это просто какая-то домашняя страница без конфиденциального кода, тогда вы можете согласиться с риском утечки информации и кражи кода вместо более быстрого времени отладки / разработки. Однако, если верно обратное, я бы рекомендовал придерживаться выпуска сборок в производственной среде и использовать сервер отладки за пределами производственной сети для отслеживания проблем.
Кроме того, использование системы ведения журнала, такой как nlog, также может быть хорошим решением для обнаружения проблем без необходимости выпуска PDB. Вам нужно будет написать достаточно кода для ведения журнала, чтобы охватить все ваши базы, но усилия могут окупиться, если выпуск PDB слишком рискован.