2010-02-01 121 views
2

我创建了基于https的web服务,我正在与朋友分享。我很担心web服务的安全性,因为如果从服务器端发出请求,用户名和密码将会起作用。但是,如果我想提供像Twitter这样的小部件,我很担心在html中拥有验证代码。公开Web服务,安全问题

什么是行业最佳实践?

问候 巴拉

+0

这个web服务是做什么的? – ceejayoz 2010-02-01 16:08:19

+0

它实际上会返回一些关于我的网站的统计信息。 – Boolean 2010-02-01 17:10:20

回答

1

审查后

  • 客户端证书 - 允许服务器识别客户机 - 这是最安全的,认可的标准方式。
  • 一些web服务使用“客户端证书”方法,但以本地方式实现。所以你公开了一些提供不对称签名交换的方法。您在哪里与客户的公钥部分交换密钥。调用所有其他服务方法将接受会话密钥,该密钥在客户端匹配上进行检查。 (这个会话密钥也可以存储在cookie中)。
  • 一次性密码 - 相当快,您生成一些盐,并以公开的方式提供给客户端。客户端必须每次都计算来自秘密ID和此盐的散列,并将其用作每种方法的参数。
  • Google API/Yahoo API ...使用识别客户的唯一字符串,当然它可以被泄露,但对于公共服务,足以识别问题以禁用帐户。
+0

请问您可以扩展最后一点吗? – Boolean 2010-03-07 06:03:16

+0

@Algorist例如,您生成256个字符长度的字符串,其中包含编码或散列的连接:[用户名],[发布日期]等...因此,此字符串允许您识别用户,这违反了您的一些规则Web服务使用情况。例如,它尝试DOS攻击,但他/她需要识别自己。妥协意味着这样的ID可能被盗,但你无法知道用户是否真实。所以谷歌/雅虎暂时冻结了这个帐户,直到宣布。 – Dewfy 2010-03-07 18:21:04