最近做 Web 开发产生的疑问,正好前几天被人问到了,我也不知道答案,不知道各位有经验的前辈如何看待这个问题。
像 Ember、Angular、React 这些前端框架固然强大,很多功能跟 Rails 等后端框架都有重合,甚至还更好用。但前端框架最大的问题是安全性无法保障,JS 代码完全暴露给用户,很容易被篡改。为了保证逻辑正确,即使前端框架可以实现某些功能,也只能在留在 Server 端进行操作。
比如最简单的数据验证问题,使用 Javascript 进行本地验证无疑是效率最高的方式,但安全风险太大,通常只能把这些敏感步骤放在 Server 端进行,但这样就加重了 Server 的负担,效率也不高(网络延迟)。如果同时追求性能和安全,那就前端后端都做一遍,前端过滤掉普通用户的非法操作,后端阻止 strong 用户的非法操作。但这样开发的成本就翻倍了啊。
有没有什么好的策略吗?如何权衡这种问题呢?😶