安全 有什么好的办法提高前端 Javascript 的安全性?

shaunli · 2015年04月25日 · 最后由 shaunli 回复于 2015年04月27日 · 8441 次阅读

最近做 Web 开发产生的疑问,正好前几天被人问到了,我也不知道答案,不知道各位有经验的前辈如何看待这个问题。

像 Ember、Angular、React 这些前端框架固然强大,很多功能跟 Rails 等后端框架都有重合,甚至还更好用。但前端框架最大的问题是安全性无法保障,JS 代码完全暴露给用户,很容易被篡改。为了保证逻辑正确,即使前端框架可以实现某些功能,也只能在留在 Server 端进行操作。

比如最简单的数据验证问题,使用 Javascript 进行本地验证无疑是效率最高的方式,但安全风险太大,通常只能把这些敏感步骤放在 Server 端进行,但这样就加重了 Server 的负担,效率也不高(网络延迟)。如果同时追求性能和安全,那就前端后端都做一遍,前端过滤掉普通用户的非法操作,后端阻止 strong 用户的非法操作。但这样开发的成本就翻倍了啊。

有没有什么好的策略吗?如何权衡这种问题呢?😶

表示前后端验证都写。。。坐等高人回复。

前端和后端的验证完全是两回事,后端永远不能相信前端。前端验证的重点不是阻止非法操作,而是提供出错的友好界面,不论错误信息来自前端还是后端。后端验证阻止任何不符合要求的行为。

#2 楼 @billy +1 前端讲用户体验。后端才扯安全。

你就把前端和后端当两个不同的应用,任何应用边界都应该有自己的业务校验。如果你的后端再细分,那后面仍然会有自己阶段的业务校验。

#1 楼 @dandananddada 这样做工作量让人很郁闷那

#2 楼 @billy 嗯,领教了。种种 JS 的数据验证方式确实很令人迷惑啊。

#4 楼 @winnie 谢谢,收藏了!

#5 楼 @huobazi 能详细说一下嘛?不是很懂

需要 登录 后方可回复, 如果你还没有账号请 注册新账号