简短的回答是:如果发布您的WSDL代表安全问题,那么即使您没有发布WSDL也存在安全问题,并且您需要解决该问题,而不仅仅是尝试隐藏它.
WSDL只是解释了你的协议.你不能认为你的协议是秘密;没有您的WSDL,攻击者仍然可以对其进行逆向工程.您永远不能假设网络连接另一端的客户端是“您的”客户端.你必须假设它是一个攻击者,并设计你的系统来处理这个事实.
因此,隐藏您的WSDL是一种较小的混淆形式,不会提供严重的安全性.但是……如果隐藏你的WSDL非常容易,并且你不需要额外的工作,当然,为什么不呢?隐藏它可能会阻止某些类型的自动脚本试图攻击您.它确实为攻击者带来了一个额外的小问题.
隐藏WSDL的一个主要危险是,它可能会导致认为WSDL因此是秘密的开发人员的邋..如果你有一个可能成为问题的团队,我会公开它只是为了让他们专注.
另一个主要危险是它是否会使您的系统更难维护(例如,难以升级).如果是这样的话,我绝对不会隐藏它.与公共WSDL相比,客户端的额外复杂性几乎肯定是一个更大的安全风险.