1

语境

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

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

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

问题

当我想调节发送到当前账户余额的短信时,问题就出现了。

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

替代解决方案

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

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

服务器端优缺点:

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

客户端的优缺点:

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

有什么想法吗?

4

1 回答 1

0

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

祝你好运,

马特

于 2012-09-05T16:06:50.680 回答