创建站点许可证(算法)

时间:2011-06-28 07:07:25

标签: xml web-services algorithm httpwebrequest license-key

我想向网站所有者提供XML Feed作为服务。 XML文件本身将通过webservice(.asmx)

提供

问题是客户端可以自由地分发XML提要链接。

所以我想创建一个“站点许可证”。 网站所有者 - 客户将向我确认将请求XML Feed的网站。 通过这种方式,XML提要将被提供给特定的http请求。

P.S。我知道你可以改变标题等等......但我想实施一个解决方案“减慢速度”并感觉更好!

您能否提供更好的许可证算法?我怎样才能保证XML feed免费分发?

3 个答案:

答案 0 :(得分:4)

这完全取决于您的业务规则所要求的;您想要的安全性越高,您对各个站点进行身份验证的负担就越大。您希望客户端站点越容易,算法就越不复杂。

但基本上,用特定于座位的令牌(即密码)来保护内容。

对于每个允许的客户端,您将生成一个令牌。您需要座位作为其请求的一部分传递该令牌。当您收到该令牌时,验证它(在您认为合适的任何范围内) - 也许您只是检查它是否是有效令牌,也许您检查IP发起人,也许令牌是质询 - 响应加密阶段的一部分。

跟踪座位登录并查找滥用行为(来自不同IP地址的请求,以高价格发送的请求等)。

在启动服务级别,除非您处理敏感信息或成功,否则您可能不需要太多复杂性。

答案 1 :(得分:2)

您可以使用基于证书的解决方案(PKI基础架构):您创建自己的证书,发送给您的客户(每个客户都有自己的证书),并使用类似于此处描述的服务器端逻辑来检查它:{ {3}}。它不是ASMX示例,但Http模块逻辑是相同的。

优点是用户无需输入任何密码,因为如果网站要求,他们的浏览器应该能够提供证书。

当然,用户仍然可以将证书复制并发送给其他用户,因此您仍然需要一些监控机制,例如基于IP地址(即使它不是100%全面防御,它总比没有好)。一旦您检测到证书似乎已经死亡(由太多人使用),您可以在服务器上将其标记为无效,并将新的证书发送给合法用户。

答案 2 :(得分:0)

我有一个接近它的许可证系统,我想提供对特定XSL文件和特定网页的服务的访问,因为它根据来自URL的标记的http来处理xsl,为此我已经采取了referer url并与允许的url以及请求的xsl文件进行比较

我工作的另一个系统更进一步,并且使用流ID(用于视频流)用户ID和发送密钥的时间,如果匹配则允许流(允许1分钟的窗口)开始。

但所有这些方法都有助于了解密钥中的参数顺序以及在一个或两个方向上发送的隐藏密钥,并且md5散列可见/传输密钥的结果字符串。