我正在开发一个ASP.NET网站,我想部署pdb文件,因为当抛出意外异常时,我想用行号记录它们,以便我可以追踪问题.
但我担心安全性和性能.
如果我使用堆栈跟踪信息登录到Web服务器上的非公共文件而不向用户显示,那么在Web服务器上安装pdb文件是否存在安全风险?
就性能而言,我知道在存在pdb文件时处理异常会更加昂贵,但目标不是有任何异常,并且在极少数情况下发生,以获得良好的跟踪数据,以便我们可以修复问题.
但有一件事我不清楚是这样的:如果抛出异常并被捕获,我是否仍然支付pdb罚款?我特别想到你在Response.Redirect时抛出的ThreadAbortException.这是一个遗留应用程序,其中很多都是正常程序流程的一部分,因此我只是捕获并忽略这些异常,但是pdb文件的存在是否会使这个代价更高?或者.NET是否会忽略pdb文件,除非您要求堆栈跟踪(对于此特定异常,我不会这样做)?
除此之外,只要除了我真正想要详细了解的那些之外没有例外,将pdb文件部署到Web服务器是否有任何性能损失?
解决方法
至于安全性,我看不到部署PDB的任何实际问题. PDB只包含
>源线和IL偏移之间的映射
>当地人的名字
>源文件的名称
>与给定函数相关的using指令列表
即使PDB信息被泄露,我也不会考虑任何敏感信息
至于性能,仅仅存在PDB不会改变应用程序的执行逻辑.它仅与调试目的相关,并且正常执行不与其交互
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。