没有 MEX 端点的带有 BasicHttpBinding 的 WCF 服务可以被绝对陌生的人利用吗?

Posted

技术标签:

【中文标题】没有 MEX 端点的带有 BasicHttpBinding 的 WCF 服务可以被绝对陌生的人利用吗?【英文标题】:Can a WCF service w/ BasicHttpBinding without a MEX Endpoint be exploited by absolute strangers? 【发布时间】:2009-09-23 15:28:02 【问题描述】:

据我了解:如果您没有 MEX 端点/WSDL,您的服务基本上是不可发现的。只有了解您的数据合同的人才能使用您的服务。

这种说法是否成立,或者是否有办法让互联网上的恶意居民找出如何调用/使用没有 MEX 端点的服务?

编辑:正如 Andrew 所指出的,这种策略不应被认为是真正安全的。我想知道更多关于在与外部消费者的 QA 阶段是否可以避免随机滥用。

【问题讨论】:

【参考方案1】:

取决于您对安全的定义。这是一个默默无闻的安全案例,这对于您的个人待办事项服务可能很好,但对于财务应用程序来说是不可接受的。

SOAP 等并不复杂,因此黑客猜测某些输入并非不可能,尽管取决于服务,它可能非常不可能(甚至在数学上也不可行)。但是,如果您分发的客户端可以被逆向工程,或者如果有人设法通过数据包嗅探您服务的合法使用,那么他们几乎肯定可以利用它?

【讨论】:

我完全理解您所说的它提供的安全级别。【参考方案2】:

人们(黑客)使用端口嗅探器来查找有监听的端口。然后他们开始用数据探测它,看看会得到什么。不需要太多工作就可以确定这是一个需要 SOAP 消息的端口。基本上返回的错误会告诉你很多。因此,默默无闻的安全性根本就没有安全性,您不妨发布 URL。

MEX 部分仅用于帮助其他人创建服务合同,而不是要求。以 REST 或 JSON 服务为例,没有 MEX 端点的概念。

【讨论】:

以上是关于没有 MEX 端点的带有 BasicHttpBinding 的 WCF 服务可以被绝对陌生的人利用吗?的主要内容,如果未能解决你的问题,请参考以下文章

20170116小测233

CF1083C Max Mex(线段树上二分)

HDU4747:Mex(线段树区间修改)

[CF1083C]Max Mex

bzoj3339

无法让 MEX 使用我的 WCF 服务