【问题标题】:single-page web apps + rest api combination: server or client approach?单页 Web 应用程序 + REST API 组合:服务器还是客户端方法?
【发布时间】:2012-09-06 00:06:50
【问题描述】:

上下文

我正在使用 AngularJS 和使用 REST api 作为后端构建一个单页 Web 应用程序。

其余后端有以下服务(简化):

  • /accounts/:id -- 管理帐户
  • /transactions/:id -- 管理与账户相关的交易
  • /sms/:id -- 管理发送短信并列出发送的短信

问题

当我想将短信发送到当前帐户余额时出现问题。

如何在保持 REST 理念的同时实现账户余额验证?

替代解决方案

在我看来,我有两种选择:

  • 服务器端:短信路由处理短信发送请求(POST /短信)的账户和余额检查
  • 客户端:控制器首先询问账户余额,只有在有余额时才调用短信路由

服务器端的优缺点:

  • 优点:账户余额检查对网络应用程序是透明的;客户端没有账户余额验证意味着没有黑客攻击的机会(?)
  • 缺点:暗示 sms 路由也将负责余额检查

客户端的优缺点:

  • 优点:保持 REST API 正交
  • 缺点:将验证逻辑移至客户端使其容易被黑客入侵

有什么想法吗?

【问题讨论】:

    标签: rest angularjs


    【解决方案1】:

    您的数据的价值/敏感度如何?根据经验,永远不要相信客户会保护您的数据。除了在客户端执行的任何验证之外,任何值得保护的东西都应该在服务器端进行验证。两者都没有错,而且它的常见做法是在客户端和服务器上都进行验证,它可以在保护您的域的同时为您的用户提供更丰富的体验。

    祝你好运,

    马特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-07
      • 2015-06-23
      • 2014-08-26
      • 2014-05-31
      • 1970-01-01
      • 2010-09-29
      • 2020-01-02
      相关资源
      最近更新 更多