我目前正在致力于通过远程网站提供一些服务的REST/JSON API。我不知道这些网站的最终客户,他们将/不应该有API服务器上的帐户。在API服务器上存在的唯一帐户将是标识网站的帐户。由于这是全部RESTful,因此所有通信都将在最终用户浏览器(通过javascript/JSON)和我的REST API服务之间进行,因此我如何确保系统不会被有兴趣增加中间人账单的第三方滥用? (中间人是网站转售我的服务的所有者)。你会推荐哪些验证方法可以起作用,并且会阻止用户仅仅从网站获取js代码并将其称为1000000次,以破坏网站所有者?我正在考虑使用HTTP_REFERER,并将其转换为IP地址(以找出哪个服务器托管代码,并基于此IP进行身份验证),但我认为HTTP_REFERER很容易被欺骗。我没有在API服务器上寻找我的客户的最终客户,这会破坏这个API的目的。第三方客户的休息API(AAA)
有些想法请吗?
感谢, 丹
我想用这样的东西:让远程网站首先打开一个认证链接,它将通过$ _SERVER ['REMOTE_ADDR']和服务器IP通过$ _SERVER ['SERVER_ADDR'提供最终用户IP地址'],然后该API将生成一个将由JS代码使用的到期令牌,该令牌将授权客户远程IP 5分钟左右。通过这种方式(使用fopen),我可以验证该IP地址是否来自我们的API来自有效网站,并且该客户可以在接下来的5分钟内做任何他想做的事情。你可以看到什么缺点? – Dan
如果五分钟过期并且用户突然不能做什么,会发生什么?你们所有的潜在客户都使用PHP吗? – ryan1234
他们使用的是无关紧要的,我的API服务器使用PHP并使用$ _SERVER的东西。我假设我可以在js代码中实现一个计时器,如果用户在该时间范围内没有离开当前页面,则会每隔300秒通过ajax调用auth文件(执行fopen的文件)。这将更新令牌。 – Dan