V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
solomaster
V2EX  ›  问与答

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

  •  
  •   solomaster · 2016-02-21 23:35:54 +08:00 · 1685 次点击
    这是一个创建于 3197 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如某些运算,某些判断,某些解析等等不限于这些。
    是服务端大包大揽做好,只给客户端需要显示的东西,还是客户端分担一部分?如何抉择?
    7 条回复    2016-02-24 16:13:56 +08:00
    DearTanker
        1
    DearTanker  
       2016-02-21 23:55:52 +08:00
    关注
    k9982874
        2
    k9982874  
       2016-02-22 00:28:32 +08:00 via iPhone
    做系统切记一条客户端是不可信的
    longaiwp
        3
    longaiwp  
       2016-02-22 00:47:17 +08:00
    phoenixlzx
        4
    phoenixlzx  
       2016-02-22 00:50:52 +08:00
    1. 不缺钱的情况下
    全部交给服务端,方便维护方便更新还安全

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

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

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

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


    推荐你看看乌云的:
    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
        6
    solomaster  
    OP
       2016-02-24 16:13:19 +08:00
    @phoenixlzx 简单明了。谢谢~
    solomaster
        7
    solomaster  
    OP
       2016-02-24 16:13:56 +08:00
    @shiji 明白了。很有收获。谢谢指教~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:03 · PVG 05:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.