我有一个我们创建的 WebService 项目,用于向我们的客户公开一些方法(特别是如果他们调用其中一种方法,它将在我们的服务器上触发一个事件),他们可以在他们自己的 C# 项目中调用这些方法(一些客户将使用 Web 表单应用程序,而一些将在其内部网站上使用)。
由于该方法的性质,其中一个参数是一个字符串,用于标识客户端是谁(因此我们可以触发适当的事件),我并不过分相信这足以防止人们发送随机数据直到他们偶然发现其中一个有效标识符。
保护此类内容免受滥用的标准方法是什么?我发现的大多数教程似乎都没有提到任何关于保证它们安全的内容。谢谢!
最佳答案
Daniel Vassallo 是正确的。您将需要使用 X509 证书来验证调用该服务的人是否合法。然而,这确实大大提高了解决方案的复杂性。您将需要使用 Microsoft WSE 和可能购买的第 3 方组件。
如果没有它,您可以使用传入的用户名和密码。但是,需要一些共享算法来根据日期、时间等对信息进行哈希处理。如果没有哈希,您将面临一个黑客多于没有。即使使用 SSL,字典攻击最终也可能闯入。
关于c# - 保护网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1924305/