作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 WCF/Web 服务/WS-Trust 联合安全的上下文中,普遍接受的验证应用程序而不是用户的方法是什么?据我所知,证书身份验证似乎是可行的方法,IE 专门为应用程序生成证书。我走在正确的轨道上吗?是否还有其他替代方案可供考虑?
最佳答案
您要做的是解决一般的数字版权管理问题,这是目前尚未解决的问题。
远程证明有很多选项,涉及试图隐藏某种 secret (传统的 secret key ,或半 secret 的行为特征)。
一些简单的示例可能会阻止您的 API 的临时用户使用它:
&officialclient=yes
在请求中&appkey=<some big random key>
在请求中nonce
到应用程序,应用程序返回 HMAC(secret,nonce)
)但一般来说,“防御者优势”非常小 - 无论您付出多少努力来尝试验证与您对话的软件实际上是您的软件,它都不会占用您的攻击者/用户更多的努力来模仿它。 (为了打破我给出的第三个例子,你甚至不需要对官方客户端进行逆向工程——用户只需连接官方客户端来回答他们自己的客户端收到的挑战。)
您可以寻求的更稳健的途径是许可/法律选择。一个著名的例子是 Twitter,它阻止你通过他们的 API licence terms and conditions 联系任何老客户。 - 如果您创建了自己的(流行的)客户端,假装 Twitter API 是官方 Twitter 客户端,则假设他们的律师会来敲门。
关于wcf - 如何验证应用程序而不是用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321072/
我是一名优秀的程序员,十分优秀!