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

请教一下这种代码的目的是什么,如何检查出来

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

    合作的公司给开发一个程序,今天系统突然报错,找运维检查发现服务器某些文件内容空了

    联系这家公司的程序员查原因,发现 git 上改了这段内容,不太懂这段代码的意义是什么?

    顺便求助一下如何检查项目中有类似的代码

    Xnip2023-09-01_09-37-18.jpg
    55 条回复    2023-09-01 19:37:51 +08:00
    FreeEx
        1
    FreeEx  
       239 天前
    你为什么不直接问对方程序员这样写的原因?
    paopjian
        2
    paopjian  
       239 天前
    太 6 了,你们代码没 review 吗?
    haha512
        3
    haha512  
       239 天前   ❤️ 20
    “如果当前日期超过 2023-9-1 号 0 点,就清空这 3 个文件里的所有内容。“

    自然报错。

    是不是用来预防不结尾款的
    x86
        4
    x86  
       239 天前
    是不是没打尾款
    Seanfuck
        5
    Seanfuck  
       239 天前
    @haha512 应该就是了
    xianyv
        6
    xianyv  
       239 天前   ❤️ 1
    看来是赖了尾款啊
    shoco
        7
    shoco  
       239 天前   ❤️ 1
    把该付的款付清,更新一下就回来了
    Lenic
        8
    Lenic  
       239 天前
    蹲一个后续
    Eiden
        9
    Eiden  
       239 天前
    有意思
    gaeco
        10
    gaeco  
       239 天前
    学到了
    jookr
        11
    jookr  
       239 天前
    学到了
    ttentau1
        12
    ttentau1  
       239 天前
    学到了
    EvanQu
        13
    EvanQu  
       239 天前   ❤️ 3
    应该是 结了 但是忘记更新掉了 哈哈哈
    dobelee
        14
    dobelee  
       239 天前
    卧槽,定时爆破。。
    kemikemian
        15
    kemikemian  
    OP
       239 天前
    看 git 记录代码是 5 月份加的,$date 日期从 5 月改成 6 月、7 月,7 月底、9 月 1
    那会确实没结尾款,7 月份结的尾款
    kemikemian
        16
    kemikemian  
    OP
       239 天前
    有没有类似的开源项目可以检查类似的代码呀
    jookr
        17
    jookr  
       239 天前   ❤️ 10
    让运维查不出文件改动

    ```
    $file_path = '666.txt';
    if (file_exists($file_path)) {
    $filemtime = filemtime($file_path);//获取最后修改时间
    // echo "文件最后修改时间:" . date("Y-m-d H:i:s.", $filemtime);
    file_put_contents($file_path, time());//写入文件内容
    // touch($file_path,mktime(19,5,10,10,26,2013));
    touch($file_path,$filemtime);//还原修改文件的最后修改时间
    }
    ```
    yuyang3
        18
    yuyang3  
       239 天前
    也用同样的方法,防止尾款
    Jaosn
        19
    Jaosn  
       239 天前   ❤️ 2
    给钱就完了,还检查,检查个鸡儿
    XyIsMy
        20
    XyIsMy  
       239 天前
    结了尾款,那直接找对应的负责人恢复,为什么还在这求助。
    kemikemian
        21
    kemikemian  
    OP
       239 天前
    @Jaosn 一个月前就结了
    thinszx
        22
    thinszx  
       239 天前
    学到了
    kemikemian
        23
    kemikemian  
    OP
       239 天前
    @XyIsMy 也不是求助,请教一下这么做的目的,以前没见过
    haha512
        24
    haha512  
       239 天前
    除非逐行审查,否则是检查不出来的,方法太多了,可能是基于时间进行清空删除,也可能是通过特殊 url 渗入触发删除,或者连个外部接口等。
    changepll
        25
    changepll  
       239 天前
    这种就是防止要不到尾款.把程序给搞死的. 如果你们没有做备份. 并且不是通过 git 管理的话, 那就没办法使用这个程序.
    因为使用 git 管理的话, 并且没有清空历史版本,是可以恢复回来的
    iOCZ
        26
    iOCZ  
       239 天前
    @changepll 得把这三个加到 ignore 里😂
    fzls
        27
    fzls  
       239 天前
    @kemikemian #23 目的就是怕你不结尾款
    murmur
        28
    murmur  
       239 天前   ❤️ 1
    好家伙,自毁代码真的见到了
    polobug
        29
    polobug  
       239 天前
    但是这个代码要是忘了改,。。
    wudaye
        30
    wudaye  
       239 天前
    也就脚本语言能这么玩了吧,太 6 了
    zhaol
        31
    zhaol  
       239 天前
    @polobug 就是因为结了尾款忘了改,才有这档事,所以对方提交了一版就是注释这些代码.哈哈
    kylebing
        32
    kylebing  
       239 天前
    脚本程序是会有这问题
    changepll
        33
    changepll  
       239 天前
    @wudaye java 玩的更溜
    PureWhiteWu
        34
    PureWhiteWu  
       239 天前
    别拖尾款了。
    yyf1234
        35
    yyf1234  
       239 天前 via iPhone
    @wudaye 编译语言给你加点料不是更看不出来?
    ETiV
        36
    ETiV  
       239 天前 via iPhone
    广义上讲,写入一个 .php 结尾的文件都可以当作后门行为,甭管写入的文件内容是什么,只要是动态写入,肯定没有好事儿
    Jack9527
        37
    Jack9527  
       239 天前
    @polobug 合作公司的开发人员自己应该有备份.
    shyrock
        38
    shyrock  
       239 天前
    @ETiV #36 但是文件名可以是动态算出来的,这样检查逻辑除非也去算一遍,否则不知道在干什么。
    duluosheng
        39
    duluosheng  
       239 天前
    结了尾款,还出现问题,可以要求赔偿损失的。当时的合同有没有赔偿条款?
    darkengine
        40
    darkengine  
       239 天前
    @duluosheng 就算合同没写,如果造成了损失是可以报警的
    sparklee
        41
    sparklee  
       239 天前
    代码没备份吗, 恢复一下就好了
    dengshen
        42
    dengshen  
       239 天前 via iPhone
    蹲一个前端结尾款代码🐶
    QlanQ
        43
    QlanQ  
       239 天前
    直接给你 vendor 包,里面夹带,你更新不了,恢复不了 ,666
    polarbearn
        44
    polarbearn  
       239 天前   ❤️ 3
    @dengshen not-paid
    https://github.com/kleampa/not-paid
    网站会一天天变透明
    darksword21
        45
    darksword21  
       239 天前
    @polarbearn 学到了 🐶
    fenddddddda
        46
    fenddddddda  
       239 天前
    @dengshen 移动端把一些关键类打二进制就行。
    dengshen
        47
    dengshen  
       239 天前 via iPhone
    @polarbearn 厉害
    wr516516
        48
    wr516516  
       239 天前
    @darkengine 确实可以报警,但这种很快恢复的,没有实际损失的,基本不管.实际损失定损之类的也很能说清楚,大概率不会走刑事,走民事还是得公司去手机证据去起诉.到法院那边能不能给立案又是一回事,立案了能不能判胜也未必.
    darkengine
        49
    darkengine  
       239 天前
    @wr516516 对个人来说走民事已经够恶心的了
    wr516516
        50
    wr516516  
       239 天前
    @darkengine 你是一个字也没看进去啊
    xiaowowo
        51
    xiaowowo  
       239 天前   ❤️ 1
    首先,php 代码目录就不应该允许可写。
    GeorgeGalway
        52
    GeorgeGalway  
       239 天前
    学到了
    flyqie
        53
    flyqie  
       239 天前
    @xiaowowo #51

    首先, `合作的公司给开发一个程序`...
    kphcdr
        54
    kphcdr  
       239 天前
    这个已经属于违法了,我搞了一个配置管理平台,名正言顺还能防止尾款
    akira
        55
    akira  
       239 天前
    都是逼出来的啊。。。就是各种拖欠尾款公司的存在,逼的合作公司不得不想各种办法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   859 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:43 · PVG 04:43 · LAX 13:43 · JFK 16:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.