CN114564348B - 代码层监测node.js第三方应用的方法及*** - Google Patents
代码层监测node.js第三方应用的方法及*** Download PDFInfo
- Publication number
- CN114564348B CN114564348B CN202111546059.7A CN202111546059A CN114564348B CN 114564348 B CN114564348 B CN 114564348B CN 202111546059 A CN202111546059 A CN 202111546059A CN 114564348 B CN114564348 B CN 114564348B
- Authority
- CN
- China
- Prior art keywords
- node
- entry file
- file
- party application
- monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种代码层监测node.js第三方应用的方法及***,该方法包括:创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;通过上述方法,在通过node.js进行软件开发时,通过该代理入口文件来启动第三方应用,最终实现node.js先加载代理入口文件的代码逻辑,然后再启动第三方应用,从而通过查阅该代理入口文件中的日志记录即可实现对该第三方应用的运行代码的监测,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。
Description
技术领域
本发明涉及网络软件开发应用程序监测技术领域,尤其涉及一种代码层监测node.js第三方应用的方法及***。
背景技术
Node.js是一个基于Chrome V8引擎的JavaScript运行环境。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。随着Node.js的普遍使用,它的安全性也越来越被关注,在基于Node.js进行网络软件开发时,第三方应用的安全性是影响Node.js运行安全的主要因素,因此,需要对运行在Node.js上的第三方应用进行代码层的监测。目前普遍使用插桩技术对第三方应用源码进行监测,但这会改变第三方应用的源码,需要用户对第三方应用的源码比较清楚,在实现过程中比较费时费力,尤其是对于新手来说,还容易出错。
发明内容
本发明的目的是为解决上述技术问题而提供一种基于node.js应用开发的在不改变第三方应用源码的前提下对第三方应用进行有效监测的代码层监测node.js第三方应用的方法及***。
为了实现上述目的,本发明公开了一种代码层监测node.js第三方应用的方法,其包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
较佳地,通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开一种代码层监测node.js第三方应用的***,其包括代理入口创建模块、启动模块和监测模块;
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用;
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
较佳地,还包括打包模块,所述打包模块用于通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开另一种代码层监测node.js第三方应用的***,其包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的代码层监测node.js第三方应用的方法的指令。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的代码层监测node.js第三方应用的方法。
与现有技术相比,本发明代码层监测node.js第三方应用的方法,创建一用于代理node.js启动的代理入口文件,因此,在通过node.js进行软件开发时,通过该代理入口文件来启动第三方应用,最终实现node.js先加载代理入口文件的代码逻辑,然后再启动第三方应用,从而通过查阅该代理入口文件中的日志记录即可实现对该第三方应用的运行代码的监测;由此可知,通过上述方法,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式详予说明。
本实施例公开了一种代码层监测node.js第三方应用的方法,以对基于node.js进行软件开发过程中的第三方应用的运行代码进行监测,从而有效确保node.js开发平台运行的安全性和稳定性,该方法包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
具体地,node.js自身的启动应用入口文件为app.js,命令行启动方式为nodeapp.js,启动应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”。所以当执行node app.js时,源码中会触发Module.runMain方法,并使用process.argv[1]作为启动参数。
因此,在创建代理入口文件engine.js时,需要在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,修改process.argv[1]值为“app.js”,然后再执行一遍Module.runMain()方法,那么就可以做到在engine.js中启动app.js,等同于运行node app.js这一命令。
进一步地,为方便执行启动第三方应用的操作,通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。具体地,通过node自带的打包工具npm对所述代理入口文件engine.js打包,将engine.js打包成engine.tgz,也即执行命令:npm install engine.tgz-g,那么全局cmd就可以执行“engine”命令,从而通过engine来启动第三方应用app.js,如:engine app.js(第三方应用入口文件)。
由此可知,通过node.js进行软件开发时,通过代理入口文件engine.js来启动第三方应用app.js,最终实现node.js先加载engine.js的代码逻辑,然后再启动app.js,从而通过查阅该载engine.js中的日志记录即可实现对该第三方应用的运行代码的监测。通过上述方法,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。
本发明另一较佳实施例中,还公开一种代码层监测node.js第三方应用的***,其包括代理入口创建模块、启动模块和监测模块。
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件。
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用。
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
进一步地,该***还包括打包模块,所述打包模块用于通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开另一种代码层监测node.js第三方应用的***,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的代码层监测node.js第三方应用的方法的指令。处理器可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的代码层监测node.js第三方应用的***中的模块所需执行的功能,或者执行本申请方法实施例的代码层监测node.js第三方应用的方法。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的代码层监测node.js第三方应用的方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
Claims (6)
1.一种代码层监测node.js第三方应用的方法,其特征在于,包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;通过打包工具将所述代理入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中;
代理启动的执行过程包括:当所述node.js自身的启动应用入口文件为app.js时,命令行启动方式为node app.js,启动应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”,在创建node.js的代理入口文件engine.js时,在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,修改process.argv[1]值为“app.js”。
2.根据权利要求1所述的代码层监测node.js第三方应用的方法,其特征在于,采用node.js所属打包工具npm对所述代理入口文件打包。
3.一种代码层监测node.js第三方应用的***,其特征在于,包括代理入口创建模块、启动模块和监测模块;
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;当所述node.js自身的启动应用入口文件为app.js时,命令行启动方式为node app.js,启动第三方应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”,在创建node.js的代理入口文件engine.js时,在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,并修改process.argv[1]值为“app.js”;
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用;
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;还包括打包模块,所述打包模块用于通过打包工具将所述代理入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
4.根据权利要求3所述的代码层监测node.js第三方应用的***,其特征在于,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
5.一种代码层监测node.js第三方应用的***,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至2任一项所述的代码层监测node.js第三方应用的方法的指令。
6.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至2任一项所述的代码层监测node.js第三方应用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546059.7A CN114564348B (zh) | 2021-12-16 | 2021-12-16 | 代码层监测node.js第三方应用的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546059.7A CN114564348B (zh) | 2021-12-16 | 2021-12-16 | 代码层监测node.js第三方应用的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564348A CN114564348A (zh) | 2022-05-31 |
CN114564348B true CN114564348B (zh) | 2023-04-04 |
Family
ID=81711655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111546059.7A Active CN114564348B (zh) | 2021-12-16 | 2021-12-16 | 代码层监测node.js第三方应用的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564348B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436831A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 用于客户端服务器***的监控方法和装置 |
CN110941534A (zh) * | 2019-11-19 | 2020-03-31 | 深圳开源互联网安全技术有限公司 | 检测web应用第三方代码调用的方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858142B (zh) * | 2018-08-07 | 2024-05-24 | 阿里巴巴(中国)有限公司 | 一种应用的启动方法及装置 |
CN109218407B (zh) * | 2018-08-14 | 2022-10-25 | 平安普惠企业管理有限公司 | 基于日志监控技术的代码管控方法及终端设备 |
CN110147656B (zh) * | 2019-05-10 | 2020-10-30 | 重庆迅燕科技有限公司 | 一种Node.js的代码加密及底层运行时解密办法 |
US20210011835A1 (en) * | 2019-07-12 | 2021-01-14 | HCL America Inc. | System and method for debugging source code of an application |
-
2021
- 2021-12-16 CN CN202111546059.7A patent/CN114564348B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436831A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 用于客户端服务器***的监控方法和装置 |
CN110941534A (zh) * | 2019-11-19 | 2020-03-31 | 深圳开源互联网安全技术有限公司 | 检测web应用第三方代码调用的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114564348A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150161381A1 (en) | Detecting java sandbox escaping attacks based on java bytecode instrumentation and java method hooking | |
KR102023223B1 (ko) | 실행 중인 프로세스로의 동적 코드 주입 기법 | |
US20120210299A1 (en) | Method And Apparatus for Generating Persistent Variables In A Shell Environment | |
WO2020177429A1 (zh) | 在应用中嵌入代码的方法、装置及电子设备 | |
US20190121985A1 (en) | Detecting vulnerabilities in applications during execution | |
CN114676424B (zh) | 一种容器逃逸检测与阻断方法、装置、设备及存储介质 | |
US11416614B2 (en) | Statistical detection of firmware-level compromises | |
CN111562929A (zh) | 补丁文件的生成方法、装置、设备及存储介质 | |
CN115688106A (zh) | 一种Java agent无文件注入内存马的检测方法及装置 | |
CN114371859A (zh) | 应用软件rasp程序更新方法、服务器、电子设备及存储介质 | |
CN114564348B (zh) | 代码层监测node.js第三方应用的方法及*** | |
CN110457345B (zh) | 数据库读取方法、装置及计算机可读存储介质 | |
CN107562499A (zh) | 应用加载的方法、装置和计算机可读存储介质 | |
CN111309402B (zh) | 数据监测及针对应用程序的处理方法、装置及设备 | |
CN111367505A (zh) | 一种JavaScript源代码保密方法、装置、设备及存储介质 | |
US8793663B2 (en) | Smart cache for a server test environment in an application development tool | |
CN106203087B (zh) | 注入防护方法、***、终端以及存储介质 | |
CN114443043A (zh) | Maven源码包第三方组件的检测方法及*** | |
CN114936368A (zh) | 一种Java内存木马检测方法、终端设备及存储介质 | |
CN111611058A (zh) | 任务执行方法、装置及电子设备 | |
CN110275710B (zh) | 一种Java本地接口一致性检查方法及***、存储介质及终端 | |
CN113961366A (zh) | 操作***的内核函数调用方法及计算机设备 | |
CN115617496B (zh) | 用户模式与内核模式通信的方法、装置、电子设备和介质 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、***及介质 | |
CN111625463B (zh) | 一种程序状态检测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |