前端应用后期维护问题! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acbot
V2EX    前端开发

前端应用后期维护问题!

  •  
  •   acbot 2023-02-13 09:56:54 +08:00 2926 次点击
    这是一个创建于 1044 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个在线的运行项目由于漏洞等原因想升级一下基础框架版本,由于手上只有打包发布后的文件,这种文件代码的 JS 可读性很差,加之自己对前端也不是很熟悉,一些问题请教一下各位前端大佬:

    1. 如何知道该 app.js 使用了的什么基础框架,或者说能反编译这个文件吗
    2. 如果该框架版本有漏洞,或者是该框架应用的第三方 JS 库有漏洞,如何在只有 app.js 的情况下能简单的升级版本(比如:像 HTML 代码种修改一下版本)
    36 条回复    2023-02-13 19:57:49 +08:00
    mclxly
        1
    mclxly  
       2023-02-13 10:19:09 +08:00
    1. 得看 app.js 内容
    2. 没源代码很难升级的
    estk
        2
    estk  
       2023-02-13 10:50:26 +08:00 via iPhone
    让我想起之前一个小公司老板说的,招个前端,做好了就实习期内就裁员。。
    acbot
        3
    acbot  
    OP
       2023-02-13 11:04:28 +08:00
    @estk 到第二跳就要歪了吗? 该应用比较老了现有的功能本身能满足需求仅仅是应用的一些基础框架版本有点漏洞,之前软件厂家已不复存在所以不可能再找对方维护,只能自己想办法了。
    ChefIsAwesome
        4
    ChefIsAwesome  
       2023-02-13 11:10:32 +08:00
    不可能
    fzls
        5
    fzls  
       2023-02-13 11:33:33 +08:00
    如果是以前那种直接写 js ,发布时跟写的时候长一样的,可以修改
    但看你的描述,应该是用打包工具进行各种预处理后的文件,没有打包前的文件,建议还是别想了
    zenxds
        6
    zenxds  
       2023-02-13 11:44:51 +08:00
    没有源码只能找到对应的代码段替换,看看代码里有没有完全删除注释,一般三方库的注释可能会保留的,如果注释都没有,只能格式化之后自己去匹配了
    yuuko
        7
    yuuko  
       2023-02-13 11:50:18 +08:00
    如果是使用框架打包后的 js ,升级希望为 0
    arnosolo
        8
    arnosolo  
       2023-02-13 11:50:49 +08:00
    没源码没法改.
    akira
        9
    akira  
       2023-02-13 12:53:59 +08:00
    可以改。 但是成本很高。比你重新写一个还贵
    GreatAuk
        10
    GreatAuk  
       2023-02-13 13:01:57 +08:00
    不太可能吧,现在前端代码都是压缩过的
    8520ccc
        11
    8520ccc  
       2023-02-13 13:03:48 +08:00
    替换一下字符串什么的应该没问题 但是你想改逻辑什么的估计不大可能,或者成本过高了
    Pastsong
        12
    Pastsong  
       2023-02-13 13:08:35 +08:00
    压缩过的不仅是 app 代码,还有框架代码,升级框架把 function 都编译成什么样了不可能都分析出来
    Pionxzh
        13
    Pionxzh  
       2023-02-13 13:09:43 +08:00 via Android
    理论上可以,但成本肯定不是你可以接受的,别想了
    westoy
        14
    westoy  
       2023-02-13 13:09:50 +08:00
    你后端写的稳的话, 前端能有什么漏洞, 无非就是一些页面 bug.....

    前端能跑就不要动它,npm install 一下, 别说改了, 可能都跑不起来了
    kidult
        15
    kidult  
       2023-02-13 13:20:53 +08:00
    跑个题,就算有源码的话,上了年头的前端项目要升级一下都是伤筋动骨,别说没源码了
    tkHello
        16
    tkHello  
       2023-02-13 13:37:01 +08:00
    好弄得 实习生可以搞定
    loading
        17
    loading  
       2023-02-13 13:43:00 +08:00 via Android   2
    你这说的是竞争对手的代码一样。
    建议重写。
    lueluev
        18
    lueluev  
       2023-02-13 13:54:16 +08:00
    @loading 给你点了
    otakustay
        19
    otakustay  
       2023-02-13 14:19:14 +08:00
    只要知道框架用 Chrome 的 Wappalyzer 看一下就行,但升级框架啥的,我觉得还是别想了,升不动的
    ZoeeoZ
        20
    ZoeeoZ  
       2023-02-13 15:49:20 +08:00
    别做梦了
    Tdy95
        21
    Tdy95  
       2023-02-13 15:53:42 +08:00 via Android
    曾经修改过几个编译后的 SDK 文件,靠着断点,执行栈信息,修改了功能。但是也仅限于一些局部功能点逻辑了。大改的成本是无法接受的。
    shakaraka
        22
    shakaraka  
    PRO
       2023-02-13 15:55:39 +08:00 via iPhone
    梦里啥都有
    acbot
        23
    acbot  
    OP
       2023-02-13 16:17:31 +08:00
    @fzls 我的认知也就是停留在那个时候, 所以才有这个问题! :-)
    acbot
        24
    acbot  
    OP
       2023-02-13 16:18:40 +08:00
    @zenxds 之前我的思路也就是这样,并且已经找到相应的关键字了。只是我觉得可能不一定是所以问问
    acbot
        25
    acbot  
    OP
       2023-02-13 16:20:48 +08:00
    @westoy 需求提上来之后我就是这样回复的 但是难免有完美主义的人要试试, 没办法!
    acbot
        26
    acbot  
    OP
       2023-02-13 16:21:56 +08:00
    @loading 不是, 背景在#3 我已经详细说了!
    chjieza
        27
    chjieza  
       2023-02-13 16:35:41 +08:00
    成本很高。看漏洞是什么类型如果是可以全局监听并处理的话,写一个外链 JS ,在 index.html 插入进去,作为一个保底的方案。但是直接复原源码或者修改源码就别想了。有这功夫能重新写一个了。
    acbot
        28
    acbot  
    OP
       2023-02-13 17:00:00 +08:00
    @chjieza 这个方法值得参考!
    icebay
        29
    icebay  
       2023-02-13 17:18:55 +08:00
    找找看有没有 map 文件?早期部分网站都有保留,有的话可以直接看到源代码

    至于框架,用 Wappalyzer 浏览器扩展试试
    TomVista
        30
    TomVista  
       2023-02-13 17:28:23 +08:00
    看看项目下 有没有 sourcemap
    leaveeel
        31
    leaveeel  
       2023-02-13 17:43:27 +08:00
    1. 看资源加载的是 el 还是 ant ,el 大概率是 vue ,ant 大概率是 react
    2. 如果是 cdn 引用的可以改 html 里的版本号升级,不保内容证兼容性
    BUHeF254Lpd1MH06
        32
    BUHeF254Lpd1MH06  
       2023-02-13 17:45:53 +08:00
    为什么没有源码呢,难道是你在网上扒的别人的吗
    Al0rid4l
        33
    Al0rid4l  
       2023-02-13 19:07:50 +08:00
    不是不能改, 但非常恶心需要很大毅力以及很多时间
    折中的可能是, 如果运气够好, 需要升级的部分模块化比较好被依赖比较少无副作用且没有什么 breaking change 的话, 找到几个被依赖的位置把它替换掉, 其他部分就可以不用管了
    acbot
        34
    acbot  
    OP
       2023-02-13 19:39:56 +08:00
    @IceBay
    @TomVista 好的 我试试!
    acbot
        35
    acbot  
    OP
       2023-02-13 19:40:46 +08:00
    @v135ex 不是, 背景在#3 我已经详细说了!
    IvanLi127
        36
    IvanLi127  
       2023-02-13 19:57:49 +08:00 via Android
    没源码就不要想了。
    人家公司倒闭导致没人维护,你们公司也有责任,而且说实话,你们也不一定有资格去改人家的代码,所以重写吧。。。。
    升级基础框架版本,升上去了其他代码可能也需要调整的。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4587 人在线   最高记录 6679     &nsp; Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 04:03 PVG 12:03 LAX 20:03 JFK 23:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86