首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含用户名和密码的WebService调用是否比登录站点更不安全?

包含用户名和密码的WebService调用是否比登录站点更不安全?
EN

Stack Overflow用户
提问于 2012-09-27 06:06:29
回答 2查看 419关注 0票数 1

不久前,我们为一个没有站点证书/SSL的客户创建了一个站点。它只有一个基本的asp_net登录系统。

你不能从这个网站购买任何东西,它也不包含个人信息--它只显示股票,并为用户提供一个电话号码,他们可以在那里打电话购买股票。

我们的一个用户有自己的系统,想要通过WebService获取一些信息--我们原本打算放一个带有WebMethod的WebService,获取用户名、密码和ID,然后将一些信息传回他们的系统。

其中一名开发人员表示,这将使系统的安全性大大降低,因为使用用户名和密码的WebMethod调用比网站上的登录系统安全性低得多。

这个WebMethod调用真的比站点上的登录系统更不安全吗?

EN

回答 2

Stack Overflow用户

发布于 2012-09-27 06:39:18

这完全取决于您计划如何接受该密码数据。您应该确保他们不会通过网络发送密码明文。您可以通过使用以下类型的模式来完成此操作:

向authenticate

  • Server发出的
  1. 客户端请求使用临时公钥进行回复。已生成临时私钥并将其存储在服务器上,该私钥可在短时间后过期(如果未使用)。
  2. 客户端使用公钥加密密码
  3. 客户端通过有线

发送加密的密码和其他数据

一般来说,无论是什么密码,您都不应该通过网络发送纯文本密码。二进制、soap、web服务、http等等。如果它被发送了,有人可以嗅探它。它只需要一次良好的wireshark捕获,您的所有数据都会被泄露。

如果你已经在做线上加密,那么我不认为这是不安全的。如果您也添加了某种握手,以便您知道谁是谁,或者如果您不能确保在IP源无法发送正确令牌的情况下对请求进行速率限制,则会更好。这就像是如果有人没有在正确的尝试次数内登录,就会把他们锁在你的UI之外。

添加SSL也是一个好主意,因为它可以防止中间人攻击。

我不是安全专家,但我所知道的是,安全是关于层的。加密流量,从不发送明文,关闭端口,管理权限,散列密码,握手,限制身份验证尝试,大量日志等。

票数 0
EN

Stack Overflow用户

发布于 2012-09-27 10:00:42

您可以对WebService文件使用混合模式身份验证。

请按照以下步骤操作:

匿名文件右键单击webservice文件,转到authentication

  • Remove
  • ,然后单击Basic windows
  • to web.config,使其可公开访问

<location path="webserice.svc"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>

  • 使用管理工具
  • 在user服务器中创建用户调用user服务并使用您创建的

用户的凭据

localhost.MyWebService myService = new localhost.MyWebService();

代码语言:javascript
复制
 `System.Net.CredentialCache myCredentials = new System.Net.CredentialCache();     NetworkCredential netCred = new NetworkCredential("UserName", "Password");     myCredentials.Add(new Uri(myService.Url), "Basic", netCred);     myService.Credentials = myCredentials;`

如果在调用Webservice时可以使用SSL,那就更好了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12611183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档