예외 strack 추적을 기록하는 응용 프로그램이 있으며 프로덕션에 배포 할 때 해당 스택 추적에 파일 이름과 줄 번호를 포함하고 싶었습니다. 어셈블리와 함께 디버그 기호를 배포하는 방법을 알아 냈지만 문제를 조사하는 과정 에서이 질문을 건너 뛰었습니다 . 이는 프로덕션 환경에 pdb 파일을 포함하는 것이 좋지 않음을 의미합니다. 허용 된 답변에 대한 의견은 "... 정보를 디버깅하면 민감한 데이터를 제공 할 수 있으며 공격 벡터가 될 수 있습니다. 앱이 무엇인지에 따라 다릅니다."
그렇다면 어떤 종류의 민감한 데이터가 노출 될 수 있습니까? 애플리케이션을 손상시키기 위해 디버그 기호를 어떻게 사용할 수 있습니까? 기술적 인 세부 사항에 대해 궁금합니다.하지만 제가 정말로 찾고있는 것은 주어진 응용 프로그램 및 프로덕션 환경에 대한 디버그 기호를 포함하는 위험을 평가하는 실용적인 방법입니다. 또는 다른 말로하면, 일어날 수있는 최악의 상황은 무엇일까요?
수정 : 후속 질문 / 설명
따라서 지금까지 모든 사람의 답변을 바탕으로 .NET 응용 프로그램에서는이 질문을 약간 단순화 할 수있는 것 같습니다. Michael Maddox의 답변에 링크 된 John Robbins 블로그 에서이 비트 는 나에게 도약했습니다.
.NET PDB에는 소스 파일 이름과 해당 행 및 로컬 변수 이름의 두 가지 정보 만 포함됩니다. 다른 모든 정보는 이미 .NET 메타 데이터에 있으므로 PDB 파일에서 동일한 정보를 복제 할 필요가 없습니다.
나에게 이것은 Reflector에 대해 다른 사람들이 말하는 것을 반복하며, 실제 문제는 어셈블리에 대한 액세스라는 의미입니다. 이것이 결정되면 PDB와 관련하여 내려야 할 유일한 결정은 파일 이름, 줄 번호 및 로컬 변수 이름을 노출하는 데 관심이 있는지 여부입니다 (시작하기 위해 최종 사용자에게 스택 추적을 표시하지 않는다고 가정). 아니면 너무 많이 단순화 했나요?