【问题标题】:How to protect back-end api that revealed by front-end code?如何保护前端代码暴露的后端api?
【发布时间】:2018-09-21 17:55:06
【问题描述】:

我对 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 请求,从而使成千上万的帖子可以上传。

【问题讨论】:

  • 使用 csrf 令牌

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


【解决方案1】:

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

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

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多