我要建一个由连接到服务器的许多客户的系统。客户端通过Web服务调用自动将数据发送到服务器。  我已经建立了一个认证机制,以使客户端与服务器的验证,只有通过认证的用户可以上传数据。 问题是,我已经硬编码密码进入客户端的代码,如果有人使用反射可被访问。 在这种情况下,我在那里有没有用户输入的,这将是存储在客户端上的静态密码的最佳方式? 谢谢 (在客户端上的.Net版本为2.0和在服务器上的.NET版本是3.5)

有帮助吗?

解决方案

我会考虑让良好的混淆你的代码,一两件事。这将防止(或至少阻止)从人使用预订组件的反射器。

不过,您的验证系统听起来不太安全。 即使你做了加密密码,如果密码是永远不变的,那将是嗅探包找出需要发送到你的服务器进行身份验证一样简单。因为它必须被发送之前被解密。

您不得不去通过SSL至少是。

此外,你可能要考虑使用,如果你在一些公共客户端的环境中安装这样的机器使用哈希加密的异步与签名XML。像一个授权方案。

我不知道你的架构或者你在运行环境中任何事物,所以我不能提出任何建议,什么是最好的安全实施,但我可以告诉你当前的设置不声音安全我。

其他提示

您有一些,你可以使用的方法,但一个最简单的实现将是加密的密码,然后只需将其存储在App.config对于被部署到用户的应用程序。

你有没有看着的http:// MSDN .microsoft.com / EN-US /库/ system.security.cryptography.protecteddata.aspx

此外,是你的web服务的WCF?如果是这样,你可以使用相互证书的安全性。它比密码更健壮。

HTH

“我已经建立了一个认证机制,从而为客户提供服务器,以便只有经过验证的用户可以上传数据进行验证。”

他们是如何认证成为“验证客户端”?

有人能您的应用程序只是复制到自己家中的电脑,现在他们是通过身份验证的客户端?

这似乎是一个巨大的安全监督,如果你要决定谁可以根据您的装配值上传。

如果你能做到基于IP的验证,如果你想避免密码和登录机制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top