语境
我正在使用 AngularJS 和使用 REST api 作为后端构建一个单页 Web 应用程序。
其余后端具有以下服务(简化):
- /accounts/:id -- 管理账户
- /transactions/:id -- 管理与账户相关的交易
- /sms/:id -- 管理发送短信并列出发送的短信
问题
当我想调节发送到当前账户余额的短信时,问题就出现了。
如何在保持 REST 理念的同时实现账户余额验证?
替代解决方案
在我看来,我有两种选择:
- 服务器端:短信路由处理短信发送请求(POST /短信)的账户和余额检查
- 客户端:控制器首先询问账户余额,只有余额才调用短信路由
服务器端优缺点:
- 优点:账户余额检查对网络应用程序是透明的;客户端没有账户余额验证意味着没有黑客攻击的机会(?)
- 缺点:意味着 sms 路由也将负责余额检查
客户端的优缺点:
- 优点:保持 REST apis 正交
- 缺点:将验证逻辑移至客户端使其容易被黑客攻击
有什么想法吗?