Pab*_*bio 11 ajax obfuscation web-services
我正在开发一个使用大量AJAX与服务器通信的网页.反过来,服务器具有广泛的REST/JSON API,公开Web客户端调用的不同操作.
匿名用户和经过身份验证的用户都使用此Web站点.正如您所料,经过身份验证的用户发出的Web服务调用需要身份验证,因此可以防止未经授权的用户或应用程序.
但是,该网站具有许多不需要身份验证的功能,其中一些功能使用匿名Web服务.我用来阻止外人调用此Web服务的唯一方法是使用CSRF令牌.我知道,CSRF令牌在这方面并不是很有用......有了一些时间,即使他们使用CSRF令牌,您也可以弄清楚如何使用Web服务.
当然,您可以使用CAPTCHA来防止应用程序或机器人自动使用您的Web服务.但是,任何人都可以使用它.
另一方面,在客户端和服务器之间共享密钥将是无用的.这是因为任何局外人都有能力从网页源代码中读取它.
我想使这些Web服务难以调用为任何第三方应用程序.除了使用CSRF令牌,你会做什么?这听起来有点愚蠢,但嘿,也许这是愚蠢的,我只是在浪费我的时间.
注意:鉴于此应用程序使用浏览器而不是"可执行文件"作为客户端,此问题与讨论无关.我不能在服务器和客户端之间使用秘密(至少我不知道)
您可能遇到比链接问题中描述的问题更简单的问题,因为您不需要向用户分发二进制文件。即使您的应用程序是开源的,HMAC/签名密钥(在该答案的“请求签名”部分中)也可以通过环境/配置设置进行控制。
总结一下: