我希望在发生错误时在页面上包含敏感(调试)信息,以便在检查生产应用程序时收集该信息。它比日志更容易使用。
为了保证这一点,我可以:
第二个选项看起来好一点:
这种方法的缺点是,如果收集调试数据,可能会遇到一些性能问题,所以最好的方法是使用这两种方法的组合......
答案 0 :(得分:3)
如果解密密钥丢失,加密解决方案会让您非常容易受到攻击。您可以定期更改密钥,但如果攻击者获得您的密钥,那么他仍然可以使用它来解密他可能已收集的旧堆栈跟踪。
这种做法怎么样?将堆栈跟踪存储在具有唯一ID的服务器上,即在数据库或文件中。将唯一ID放在网页上并显示错误消息,并要求最终用户在报告任何错误时复制此ID。创建一个包含表单的网页,您可以在其中输入唯一ID和您自己的用户名和密码。该网页显示了堆栈跟踪。