1

我已经学习 Java 大约一个月了,对这样的客户端/服务器情况还不是很熟悉。

基本上我遇到了这样一种情况,我们的客户端 Java 软件 (GUI) 显示了一个 nullpointerexception 弹出窗口,但在客户端没有堆栈跟踪。有人不得不去检查服务器端的堆栈跟踪。

我的问题是,客户端不应该也收到这些宝贵的信息吗?这样的情况可以吗,理由是只需要一份堆栈跟踪副本吗?

4

2 回答 2

2

并不真地。不建议向客户端展示您的应用程序的工作方式。主要是出于安全原因。您的堆栈跟踪显示所有被调用的对象、方法以及是否使用调试信息编译,甚至是行。这对客户端来说信息太多了,放在服务器上就可以了。

这在 SQL 注入、跨端脚本和其他我不记得的情况中,不正确的异常处理是一个安全漏洞。

编辑:这里有其他漏洞(虽然我没有看到这个:()

http://en.wikipedia.org/wiki/Vulnerability_(计算)

于 2008-10-09T21:46:49.607 回答
1

客户只需要知道它需要知道的帽子。在很多情况下,在您的客户端上不显示任何堆栈跟踪是完全可以的。您的用户应该得到明确的错误消息,但不关心堆栈跟踪。

出于调试目的,堆栈跟踪通常会丢失,应用程序给出错误,用户重新启动它并消失是任何异常,因此如果您需要知道错误,请使用日志框架。

于 2008-10-10T06:30:23.497 回答