随笔分类 -  Node.js

摘要:让我们来看看什么是路径遍历攻击,以及在Node.js中可以采用哪些方法来阻止这种攻击。 构建一个安全而健壮的应用程序需要考虑的因素很多,并非一件容易的事情。要确保覆盖所有潜在的漏洞是一项十分艰巨的任务,这需要大量的经验和指导。在这些漏洞中,有一个和系统目录访问安全相关的漏洞,它通常会在程序进行路径遍 阅读全文
posted @ 2024-05-08 10:49 Jaxu 阅读(177) 评论(0) 推荐(0) 编辑
摘要:在本文中,我们将学习如何在NodeJS中使用命令行函数进行注入漏洞攻击。 现代网站可以是一个复杂的软件,它由许多分布在不同环境中的部分组成。如果你的应用程序没有得到有效的保护,那么分布在这些环境中的每一个组成部分都有可能受到命令行注入漏洞的攻击。 本文将介绍如何在NodeJS中使用shell命令行函 阅读全文
posted @ 2024-04-26 21:04 Jaxu 阅读(459) 评论(0) 推荐(0) 编辑
摘要:攻击者可以使用Node.js应用侵入你的系统。本文介绍如何阻止这种行为的发生。 当Node.js首次发布时,它引起了一场革命。它允许开发人员在服务器端运行JavaScript,这是浏览器的主要编程语言。随着时间的推移,Node.js变得越来越流行,并成为构建Web应用程序和API的首选工具。 Nod 阅读全文
posted @ 2023-12-01 16:35 Jaxu 阅读(372) 评论(0) 推荐(0) 编辑
摘要:如何使用spawn(),exec(),execFile()和fork() 对于单进程而言,Node.js的单线程和非阻塞特性表现地非常好。然而,对于处理功能越来越复杂的应用程序而言,一个单进程的CPU是远远无法满足需要的。 无论你的服务器有多强大,单线程都是远远不够用的。 事实上,Node.js的单 阅读全文
posted @ 2023-10-31 17:33 Jaxu 阅读(1616) 评论(0) 推荐(0) 编辑
摘要:什么是单元测试? 所谓单元测试,是对软件中单个功能组件进行测试的一种软件测试方式,其目的是确保代码中的每一个基本单元都能正常运行。因此,开发人员在应用程序开发的整个过程(即代码编写过程)中都需要进行单元测试。在进入到软件开发的下一阶段之前,对程序进行单元测试是一个不错的主意。单元测试非常有用,它使用 阅读全文
posted @ 2023-08-02 15:26 Jaxu 阅读(930) 评论(0) 推荐(0) 编辑
摘要:今天早上打开电脑,更新了日常工作的github仓库,然后就是习惯性地执行了"npm install",发现报了下面这个错误: Error: error:0308010C:digital envelope routines::unsupported 顺便看了一下错误堆栈,发现是一个Node的内核文件抛 阅读全文
posted @ 2023-03-02 11:27 Jaxu 阅读(38077) 评论(1) 推荐(3) 编辑
摘要:我们曾经试图遵循良好的编程习惯,在创建和定义方法时尽可能按照“职责单一”和“开放-封闭”原则将那些没有必要暴露出来的方法定义为私有方法,但是在编写测试用例时又往往对这些设计原则嗤之以鼻,因为你会为无法编写测试这些私有方法的测试用例而感到苦恼。 从互联网上找到的许多方法都不是最优解决方案。在本文中,我 阅读全文
posted @ 2021-12-07 11:32 Jaxu 阅读(484) 评论(0) 推荐(0) 编辑
摘要:最近在执行一个gulp任务时遇到下面这个错误: Google的结果是说这个是gulp 3在Node 12.x上的一个bug。解决的办法有两个:要么通过nvm将node版本降到12以下,要么将gulp升级到4。由于我工作的电脑上还有其它的项目需要依赖node 12.x版本,所以只能采用第二种办法,将g 阅读全文
posted @ 2021-04-15 14:45 Jaxu 阅读(821) 评论(0) 推荐(0) 编辑
摘要:当你使用npm安装一个package时,会在当前目录的node_modules目录中生成一个对应的package目录,其中包含了该package所有的文件。如果你想运行这个package目录里的文件,通常的做法是切换到这个目录下,然后执行对应的文件。 例如你在项目中安装了karma依赖项,如果想直接 阅读全文
posted @ 2021-03-08 19:19 Jaxu 阅读(1703) 评论(0) 推荐(0) 编辑
摘要:不久前自己工作的电脑上Node.js升级了,导致有一个依赖的项目无法正常启动,于是到Google上搜了一把,找到stackoverflow上的一个解决办法。基本意思是说当前的Node.js版本和gulp 3不兼容,要么将gulp升级到4,要么将Node.js降回到原来的版本。于是忽然想到之前在Ubu 阅读全文
posted @ 2020-10-30 20:33 Jaxu 阅读(13005) 评论(3) 推荐(2) 编辑
摘要:上一篇:Theia APIs——事件 通过JSON-PRC进行通信 在本节中,我将讲解如何创建后端服务并通过JSON-PRC来连接它。 我将使用debug logging system作为例子来进行讲解。 概述 本示例将用express框架创建一个服务,然后通过websocket连接该服务。 注册服 阅读全文
posted @ 2020-01-11 15:32 Jaxu 阅读(1798) 评论(0) 推荐(0) 编辑
摘要:上一篇:Theia APIs——Preferences 事件 Theia中的事件或许会让你感到困惑,希望本节能阐述清楚。 来看下面的代码: (来自logger-watcher.ts) @injectable() export class LoggerWatcher { getLoggerClient 阅读全文
posted @ 2020-01-10 16:36 Jaxu 阅读(1020) 评论(0) 推荐(0) 编辑
摘要:上一篇:Theia APIs——命令和快捷键 Preferences Theia有一个preference service,模块可以通过它来获取preference的值,提供默认的preferences以及监听preference的更改。 Preferences的内容可以保存在workspace根目 阅读全文
posted @ 2020-01-09 17:06 Jaxu 阅读(1115) 评论(0) 推荐(0) 编辑
摘要:上一篇:使用Theia——创建语言支持 命令和快捷键 Theia可以通过多种不同的方式进行扩展。命令允许packages提供可以被其它包调用的唯一命令,还可以向这些命令添加快捷键和上下文,使得它们只能在某些特定的条件下被调用(如窗口获取焦点、当前选项等)。 在Theia中添加命令 要将命令添加到Th 阅读全文
posted @ 2020-01-08 13:23 Jaxu 阅读(1249) 评论(0) 推荐(0) 编辑
摘要:上一篇:使用Theia——创建插件 Theia——添加语言支持 Theia中TextMate的支持 使用TextMate语法可以为大部分源文件提供精准的着色修饰,虽然这只是在语法级别上(没有语言本身的深度解析)。语义着色可以由语言服务器提供。 TextMate语法主要有两种格式:.plist和.tm 阅读全文
posted @ 2020-01-07 09:10 Jaxu 阅读(1960) 评论(0) 推荐(0) 编辑
摘要:上一篇:使用Theia——创建扩展包 创建Theia插件 下面我们来看看如何创建Theia插件。作为示例,我们将注册一个Hello World命令,该命令显示一个“Hello World”通知。本文将指导你完成所有必要的步骤。 Theia的架构 插件与扩展包 Theia是一个可扩展的IDE。你可能听 阅读全文
posted @ 2020-01-06 22:38 Jaxu 阅读(3063) 评论(0) 推荐(1) 编辑
摘要:上一篇:使用Theia——构建你自己的IDE 创建Theia扩展包 本例中,我们将添加一个菜单项“Say hello”用来显示一个通知“Hello world!”。本文将指导你完成所有必要的步骤。 Theia的架构 Theia应用程序由所谓的扩展包(extensions)构成。一个扩展包提供一组特定 阅读全文
posted @ 2020-01-04 23:19 Jaxu 阅读(2351) 评论(0) 推荐(0) 编辑
摘要:上一篇:Theia架构 构建你自己的IDE 本指南将教你如何构建你自己的Theia应用。 必要条件 你需要安装node 10版本(译者:事实上最新的node稳定版即可): 以及yarn: 还需要确保已安装python 2.x,可通过python --version来检查。 安装 首先请创建一个空目录 阅读全文
posted @ 2020-01-04 10:29 Jaxu 阅读(10587) 评论(0) 推荐(2) 编辑
摘要:上一篇:Theia——云端和桌面版的IDE 架构概述 本节描述了Theia的整体架构。 Theia被设计为一个可以在本地运行的桌面应用程序,也可以在浏览器和远程服务器之间工作。为了支持这两种工作方式,Theia运行在两个独立的进程中,它们被称之为前端和后端,相互之间通过WebSockets上的JSO 阅读全文
posted @ 2020-01-03 23:13 Jaxu 阅读(3369) 评论(0) 推荐(1) 编辑
摘要:Theia是一个利用最新的web技术开发的支持云端和桌面运行的类似IDE的产品,它是一个可扩展的平台,并且全面支持多语言。 目标 建立一个可搭建类似IDE产品的平台 为终端用户提供完整的多语言IDE(不仅仅是智能编辑器) 同时支持云端IDE和桌面版IDE 通过language和debug serve 阅读全文
posted @ 2020-01-03 22:34 Jaxu 阅读(4585) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示