V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
supermama
V2EX  ›  程序员

客户端程序代码如果做权限控制

  •  
  •   supermama · 84 天前 · 2521 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前做的都是 BS 的程序,前后分离,前端、后端、数据库 分别是三批人分成不同权限管理,所以也不担心代码泄露或者权限问题。 那么如果是 CS 的程序,要 Git 仓库要怎么分权限,既保证一个人无法拿到全部的代码,而且也不影响在开发过程中的协作呢?

    26 条回复    2024-09-03 14:35:30 +08:00
    panxiuqing
        1
    panxiuqing  
       84 天前
    以前三批人没法交流串通?
    shadowyue
        2
    shadowyue  
       84 天前
    没有完整代码项目在开发的时候能跑起来?
    supermama
        3
    supermama  
    OP
       84 天前
    @panxiuqing 理论上会,但是至少出状况的概率会低一些。现在如果是 cs 结构,其实连数据库也没有,纯客户端,一个人出事,代码就被拿走了。
    supermama
        4
    supermama  
    OP
       84 天前
    @shadowyue 不行,跑不起来。所以就不知道像客户端的这种项目,要怎么区分好权限,既能协作编码,但是每个人又只能拿到自己的那部分代码。
    vituralfuture
        5
    vituralfuture  
       84 天前 via Android
    拿不到全部的代码其实问题很大。假设楼主的这个项目是 C++写的,可以通过链接到预先编译的库的方式避免某人拿到这部分的代码,但只适用于分层明显的情况下。如果这部分属于同一层,出 bug 了很难排查。如果这一层是频繁变动的业务,操作起来也很麻烦

    最后,防止代码泄露应该靠法律手段,技术手段防不住的
    shijingshijing
        6
    shijingshijing  
       84 天前
    @shadowyue 接口定义好了完全没问题的,前提是文档完善,接口清晰,不经常变来变去。
    shadowyue
        7
    shadowyue  
       84 天前
    客户端程序也可以拆成例如 UI 层,业务层,数据层吧,
    每个部分之间的交互通讯能支持本地或者远程两种方式的话,
    你就能把几个部分拆开,各自开发各自的。这个思路不知道是否可行
    zhangeric
        8
    zhangeric  
       84 天前
    cs 跟 bs 一样啊,做成前后端分离不就完了么?
    xuanbg
        9
    xuanbg  
       84 天前
    你的客户端难道不是替代 JS 前端的么?不会是客户端直连数据库的吧???
    Skifary
        10
    Skifary  
       84 天前
    CS 分层分模块也一样
    tool2dx
        11
    tool2dx  
       84 天前
    客户端可以啊,每人负责一个 dll 模块,整体运行起来只需要调用接口,不需要源代码。每个人的 git 权限隔离。
    gbw1992
        12
    gbw1992  
       84 天前
    之前我们做.net cs 项目时,不同业务模块可以发布到私有 nuget 上由不同组开发。主程序 host 项目直接引用或者使用反射的方式加载不同项目的界面。
    nice2cu
        13
    nice2cu  
       84 天前
    分模块 jar 包模式引入,只能看别人的代码 不能改
    GeekGao
        14
    GeekGao  
       84 天前
    不同的库、不同的权限
    共同的 CI/CD (管理员能拿到所有权限)
    自动打包,然后进行测试
    sampeng
        15
    sampeng  
       84 天前
    防君子不防小人。否则,so 出模块。也没什么好的办法
    sampeng
        16
    sampeng  
       84 天前
    但说实话吧,代码真的有这么重要么?除了真正算法累的。普通 crud ,功能页面类的。有源码又怎么样,重要的是市场模型吧
    importmeta
        17
    importmeta  
       84 天前
    建议做好保密协议,知识产权,专利,因为防不住。
    HangoX
        18
    HangoX  
       84 天前
    cs 程序吗? git 做这个有点难的,需要用 subtree ,或者直接通过 nexus 提供不同的底层包
    janus77
        19
    janus77  
       84 天前
    前端后端数据库本来就是不同的项目啊,是各自打包最后产物也是各自的,你这客户端凭什么要分开啊,我不理解,仅仅是为了安全?前端后端分离开也不是为了安全才分开的啊
    dandycheung
        20
    dandycheung  
       84 天前 via Android
    改用 SVN 。
    realJamespond
        21
    realJamespond  
       84 天前
    微前端分几个库即可
    glcolof
        22
    glcolof  
       84 天前   ❤️ 1
    网游作为一种特殊的客户端程序,很多公司是这么管理的:
    首先是前后端分离,使用 SVN 给客户端和服务器的开发人员不同的权限。
    同时全员内网开发,电脑不能访问互联网,需要查询资料的时候有单独的电脑。要下载资料的时候,需要转发给专门的人员,由该人员从外网复制到内网。
    机箱加封闭外壳,不能插 U 盘什么的。
    系统内安装加密软件,对硬盘数据加密,发给第三方的时候需要提交解密申请,层层审批之后才能解密。
    屏幕自带数字水印,截图和拍照都会留下记录。
    所有员工签署保密协议,违反协议会有严厉的惩罚。
    supermama
        23
    supermama  
    OP
       84 天前
    @zhangeric 后端没啥功能,主要功能基本都在客户端
    supermama
        24
    supermama  
    OP
       84 天前
    @dandycheung 用了几年了,再也不想用 svn 了。
    supermama
        25
    supermama  
    OP
       84 天前
    @glcolof 受教了。网游管得这么严格。
    glcolof
        26
    glcolof  
       83 天前
    @supermama 可能因为网游的代码如果泄露,公司会有较大的损失,比如其它公司可以换皮,黑产那边做外挂和私服也更方便。从这个角度来说,网游公司可能更接近传统软件公司,而不是互联网公司。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1324 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:43 · PVG 01:43 · LAX 09:43 · JFK 12:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.