构建webapp时,我希望表单数据/交互全部由AJAX API驱动。但是,很多这些API都将检索数据对象(JSON),我真的只喜欢我的Web应用程序来使用它们。有没有办法以这样的方式构建API,只有我的网站可以调用它?感觉这将是一场失败的战斗。
例如,我可以检查发出请求的域是否是我的,但主机头可能是欺骗性的。 jsonp并没有解决它,因为有人可以用Java编写服务或者在浏览器沙箱之外发出请求
我在想可能会有安全令牌和生成令牌,但我觉得我采取的任何真正措施都可能被聪明的刮刀欺骗。
答案 0 :(得分:1)
您可以使用Rails基于真实性令牌使用的技术,由Web应用程序通过自定义密钥生成。
然后,您可以在标题页中打印出来并通过ajax请求标头发送它们以验证它们。
答案 1 :(得分:1)
你说这是一场失败的战斗是正确的。如果您为客户端提供合法运行的协议代码,那么您的客户端也可以非法运行代码。
所以从那个角度来看,我认为你唯一的辩护就是混淆。它有两个部分:使代码难以理解,以便攻击者无法使用代码,并使协议难以理解,以便攻击者无法使用HTTP协议分析器。
免责声明:我正在回答他/她如何隐藏AJAX API,而不回答这样做是否道德/道德。