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

为开源 IM 做了个需要授权的闭源 JS SDK,请问进行代码混淆是否有意义?

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

    我们开发的 IM 解决方案,服务端、Android、iOS 都开源了。

    想通过需要授权的 JS SDK 来赚点小钱,现在的问题是如何保证 SDK 不被破解,或者如何能增大破解的难度?

    请大家指点一下。

    另外,前段代码,混淆、加密是否有意义?

    最后,如果你对开源 IM 感兴趣,欢迎围观:

    https://github.com/wildfirechat

        1
    imndx   36 天前 via Android
    写错了,是前端代码,不是前段代码,sorry
        2
    berumotto   35 天前 via iPhone
    前端没有加密可说吧
        3
    nnnToTnnn   35 天前
    @imndx 有啊,增加我对这个项目逆向的兴趣
        4
    imndx   35 天前 via Android
    @nnnToTnnn 好吧,但有个小小的请求呀,逆向仅仅是个人研究学习哈
        5
    imndx   35 天前 via Android
    @berumotto 我不是专业前端,但听过这种说法。有什么更好的思路不?
        6
    k9982874   35 天前 via iPhone
    服务器都开源了 加密 sdk 毫无意义
        7
    free9fw   35 天前   ♥ 2
    赚钱何必开源,开源了又来收钱
        8
    berumotto   35 天前 via iPhone
    @imndx 收费提供技术支持或者分离出一个商业版
        9
    nnnToTnnn   35 天前
    @imndx 开源又何必授权 sdk,具体的开源运营模式可参考 Red Hat,为客户提供服务,而不是做授权 sdk,这样做只会各种反编译等等的版本出来,不是限制客户,而是为客户做解决方案,然后你就会钓到大鱼
        10
    Rorysky   35 天前 via iPhone
    没啥意义吧,效果和不允许商业使用差不多
        11
    imndx   35 天前 via Android
    @free9fw 赚钱和开源,不一定是二选一的。红帽子,开源和赚钱都做的很好。
        12
    abcbuzhiming   35 天前
    兄弟,收钱不是这么收的,你应该搞一个专门的,高级功能加强版本或定制版,整体闭源,付费服务。
        13
    geelaw   35 天前 via iPhone
    所以 JS SDK 是用来做什么的呢?实现 Web 客户端?

    我觉得从 Android 和 iOS 客户端的代码很容易 infer 出来 Web 客户端怎么写,所以客户端逻辑不是一个可以(或者说,需要)被保护的对象。因此,所谓“逆向这个 JS SDK ”完全是多此一举——可以直接看其他客户端代码并翻译成 JS。

    “破解”的含义也不明确,如果你只是单纯想增加 JS SDK 未被授权的使用难度,有很多 ad-hoc 的技巧,但并不 sound。

    很多问题的技术解决方案的成本远远高于法律解决方案,而且有些问题是不存在技术解决方案的。
        14
    imndx   35 天前 via Android
    @k9982874 是的,服务端开源了,一定是能自己把 JS SDK 写出来的。可能会有没时间,想马上拥有的客户买授权的
        15
    imndx   35 天前 via Android
    @abcbuzhiming 我们真有个专业版,功能区分度不大,社区版性能又太好了,还没人对专业版感兴趣。谢谢
        16
    laravel   35 天前
    还不如做个商业版 —— wildfirechat plus 增加其功能,现在很多开源软件都是这套路
        17
    laravel   35 天前
    相近的比如 emqtt 就是一个开源版,一个收费版,我以前问他们老大,人家说一个单子几十万呢,还有别的国家的用户。
        18
    k9982874   35 天前
    @imndx #14 可以学一下 twilio,按用量收费,提供一定免费用量。服务器也继续开源,sdk 开不开源就无所谓了。
        19
    imndx   35 天前 via Android
    @k9982874 谢谢,我去研究下他们是怎么玩。我们这开源的比较完整,完全不知道他们的使用量
        20
    imndx   35 天前 via Android
    @laravel 谢谢,是的,专业的商业本和社区版得有区分度
        21
    LeeSeoung   35 天前   ♥ 1
    可以提供技术支持 服务,或者一些定制化的需求来收费。或者是新增一些不开源的服务收费。
        22
    shynome   35 天前 via Android
    @imndx 开源如果不完整的话不如不开源,eolinker 商业化之后就留了个残废的开源版在 GitHub 上,中文支持被去掉,代码能运行起来但是工作不正常,然后去排查问题的时候发现是官方 issues 已经有了但是完全不管,这样的开源你用吗

    还有开源版不应该添加使用量统计这种依赖特定服务器不透明的东西
        23
    Buges   35 天前 via Android
    授权 sdk ❌
    有二改开发需求找你们定制✔️
        24
    guyeu   35 天前
    红帽如果开源+赚钱两不误的话就不会被收购了。。
        25
    jiangecho   35 天前
    @shynome 我们的开源是完整的,另外,没有添加使用量统计之类不透明的东西的。
        26
    imndx   35 天前
    @jiangecho 乱入?这是啥鬼?
        27
    gam2046   35 天前
    sdk 收费意义真的不大,服务端开源,人家自己写一份就行了,SDK 再复杂能有一个服务端复杂?

    可以参考以下这几种方式

    1、RHEL 免费用,技术支持收费
    2、定制需求收费
    3、私有化部署收费
        28
    Felldeadbird   35 天前 via iPhone
    我觉得,对于破解是无法阻止的。
    我的另外做法是,找泄露源,不同客户购买后,都有独特的识别码。通过这个可以知道泄露源头。当然,如果把识别码移除,这就当他实力获取。
        29
    otakustay   35 天前
    基本没有意义,我还是一个 T3 的时候,只用了半个月就把 google 的广告 SDK 给吃透了,甚至可以在整出了流程的基础上再做局部优化写自己的 SDK ……
        30
    shynome   35 天前 via Android
    @jiangecho 只是提醒勿忘初衷
        31
    lifeintools   35 天前
    提供 docker 一键部署 最好
        32
    jiangzhuo   35 天前
    授权便宜了不赚钱
    授权贵了不如自己笔者 iOS Android 抄一个

    大概率赚不到小钱
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2281 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 00:30 · PVG 08:30 · LAX 17:30 · JFK 20:30
    ♥ Do have faith in what you're doing.