对于某些既可以在服务端也可以在客户端做的功能,应该本着什么原则来抉择呢?

2016-02-21 23:35:54 +08:00
 solomaster
比如某些运算,某些判断,某些解析等等不限于这些。
是服务端大包大揽做好,只给客户端需要显示的东西,还是客户端分担一部分?如何抉择?
1620 次点击
所在节点    问与答
7 条回复
DearTanker
2016-02-21 23:55:52 +08:00
关注
k9982874
2016-02-22 00:28:32 +08:00
做系统切记一条客户端是不可信的
longaiwp
2016-02-22 00:47:17 +08:00
phoenixlzx
2016-02-22 00:50:52 +08:00
1. 不缺钱的情况下
全部交给服务端,方便维护方便更新还安全

2. 比较无所谓(不影响系统数据和其他用户)的情况下
扔给客户端减少服务器负载

3. 关键性或可能导致安全漏洞的功能
再没钱也得给服务端做

一套功能也可以拆出多个模块做,前面说的无所谓的功能模块可以放在客户端。

以上
shiji
2016-02-22 01:20:50 +08:00
跟安全相关的,尽量两边都要验证 /运算。比如说注册账户的用户名格式,密码错误尝试的次数,微信给红包看照片的照片源文件(本地化模糊),
两边验证可以减轻服务端压力,因为大部分在客户端都能完成,剩下的尝试破解的,或者别的漏网之鱼服务端也全都能捕获。
时间戳必须使用服务端的(比如发帖,发推,等等)


推荐你看看乌云的:
1. 密码找回逻辑漏洞大礼包:
http://drops.wooyun.org/web/5048
2. 网上支付逻辑漏洞大礼包:
http://drops.wooyun.org/papers/345
3. 应用程序逻辑漏洞大礼包:
http://drops.wooyun.org/papers/1418
4. 业务安全逻辑漏洞大礼包:
http://drops.wooyun.org/web/6917
跟以上相关的,统统服务端(二次?)验证(对于绕过客户端验证的请求要用日志记录好,便于以后分析)

还推荐你看这本 Security Engineering , 能提高安全方面逻辑判断的严谨性
http://www.cl.cam.ac.uk/~rja14/book.html
(作者自己发布的 PDF)


大规模数据筛选分类----服务端 比如说从数据库找出永续感兴趣的信息
小规模数据筛选分类----客户端 比如把用户感兴趣的信息按照时间排序

至于运算,你就自己拿客户端试试,觉得会影响速度,用户体验什么的,就转移到服务端。
或者比如是免费的运算服务,给客户端。服务端给高级的付费用户。
解析指的是域名么?国内可能劫持的比较严重,腾讯自己给自己搞了一套私有解析协议貌似。
solomaster
2016-02-24 16:13:19 +08:00
@phoenixlzx 简单明了。谢谢~
solomaster
2016-02-24 16:13:56 +08:00
@shiji 明白了。很有收获。谢谢指教~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258086

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX