如何保护前端代码显示的后端api?

时间:2018-04-11 18:19:12

标签: web-applications frontend backend api-design software-design

我对Web应用程序的前端的理解,如果我错了,请纠正我的是按钮,链接和其他交互作为封装的HTTP请求,其中包含来自用户的格式良好的数据页面上的活动。

例如,当用户提交新帖子时,类似以下数据(JSON)/表单/查询的内容将作为POST / GET发送到某些后端服务器上的某个路径(例如http://some_server/message/post/new )处理请求。

{  
  "user_id": <some_id>,
  "message": <some_message>,
  .
  .
  .
  more_necessary_fields..
}

我的问题是,如果前端是某种桌面/ ios应用程序,则应将代码编译为二进制文件,并且应该很好地隐藏后端服务器的地址和路径。但是,如果前端是Javascript,其中代码用作浏览器的网页,并且所有路径和请求格式都是完全透明的,那么人们很容易滥用专门为前端代码使用而设计的后端服务。有什么方法可以在行业中处理这个问题?我完全偏离轨道,现有的结构可以解决这个问题吗?如果没有,有哪些方法可以保护仅限制前端代码使用的后端服务?

注意:  滥用的一个例子是,例如,前面显示的请求是提交消息,现在由于用户能够获取请求路径和请求格式,他们可以直接和编程方式将POST / GET请求发送到该路径,以便成千上万帖子可以上传。

1 个答案:

答案 0 :(得分:0)

通常我们使用cors来保护我们的后端。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Server-Side_Access_Control

这种技术允许我们设置一个特定的域,它将向我们的后端发出请求。 如果您使用的是宁静的设计,也可以设置客户端可以使用的方法。

希望能帮到你。