У мене є програма, яка реєструє траси винятків, і я хотіла, щоб ці траси стека включали імена файлів та номери рядків під час розгортання у виробництві. Я розібрався, як розгорнути символи налагодження зі збіркою, але в процесі дослідження проблеми я зіткнувся з цим питанням , що означає, що недобре включати файли pdb у виробниче середовище. У коментарі до прийнятої відповіді сказано: "... інформація про налагодження може видавати конфіденційні дані та бути вектором атаки. Залежно від того, який ваш додаток".
То який тип конфіденційних даних може бути відкритий? Як можна використовувати символи налагодження для компрометації програми? Мені цікаво щодо технічних деталей, але те, що я насправді шукаю, - це практичний спосіб оцінити ризик включення символів налагодження для будь-якого даного додаткового та виробничого середовища. Або по-іншому: що найгірше може статися?
EDIT: подальше запитання / роз’яснення
Отже, виходячи з відповідей усіх на сьогодні, здається, це питання можна дещо спростити для програм .NET. Цей фрагмент із блогу Джона Роббінса, зв’язаний із відповіддю Майкла Меддокса, вискочив мені:
PDB .NET містить лише дві частини інформації, імена вихідних файлів та їх рядки та імена локальних змінних. Вся інша інформація вже є в метаданих .NET, тому немає потреби дублювати ту саму інформацію у файлі PDB.
Для мене це повторює те, що інші говорили про Reflector, маючи на увазі те, що справжньою проблемою є доступ до зборів. Після того, як це буде визначено, єдине рішення, яке потрібно прийняти щодо PDB, полягає в тому, чи дбаєте ви про викриття імен файлів, номерів рядків та імен локальних змінних (припускаючи, що для початку ви не показуєте сліди стека кінцевим користувачам). Або я занадто спростив це?