Ich habe eine Anwendung, die Ausnahme-Strack-Traces protokolliert, und ich wollte, dass diese Stack-Traces bei der Bereitstellung in der Produktion Dateinamen und Zeilennummern enthalten. Ich habe herausgefunden, wie die Debug-Symbole mit der Assembly bereitgestellt werden, aber bei der Untersuchung des Problems bin ich auf diese Frage gestoßen , was impliziert, dass es keine gute Idee ist, PDF-Dateien in eine Produktionsumgebung aufzunehmen. In einem Kommentar zur akzeptierten Antwort heißt es: "... Debugging-Informationen können vertrauliche Daten preisgeben und ein Angriffsvektor sein. Je nachdem, was Ihre App ist."
Welche sensiblen Daten könnten also offengelegt werden? Wie können Debug-Symbole verwendet werden, um eine Anwendung zu gefährden? Ich bin neugierig auf die technischen Details, aber was ich wirklich suche, ist eine praktische Möglichkeit, das Risiko des Einfügens von Debug-Symbolen für eine bestimmte Anwendungs- und Produktionsumgebung zu bewerten. Oder anders ausgedrückt: Was ist das Schlimmste, was passieren kann?
EDIT: Anschlussfrage / Klarstellung
Aufgrund der bisherigen Antworten aller scheint diese Frage für .NET-Anwendungen etwas vereinfacht zu werden. Dieses Stück aus dem John Robbins-Blog, das in Michael Maddox 'Antwort verlinkt ist , ist mir irgendwie aufgesprungen:
Ein .NET-PDB enthält nur zwei Informationen, die Quelldateinamen und ihre Zeilen sowie die lokalen Variablennamen. Alle anderen Informationen befinden sich bereits in den .NET-Metadaten, sodass nicht dieselben Informationen in einer PDB-Datei dupliziert werden müssen.
Für mich wiederholt dies, was andere über Reflector gesagt haben, mit der Folge, dass das eigentliche Problem der Zugriff auf die Baugruppen ist. Sobald dies festgelegt wurde, müssen Sie in Bezug auf PDBs nur noch entscheiden, ob Sie Dateinamen, Zeilennummern und lokale Variablennamen offenlegen möchten oder nicht (vorausgesetzt, Sie zeigen Endbenutzern zunächst keine Stapelspuren an). Oder habe ich das zu stark vereinfacht?