摘要:
让我们来看看什么是路径遍历攻击,以及在Node.js中可以采用哪些方法来阻止这种攻击。 构建一个安全而健壮的应用程序需要考虑的因素很多,并非一件容易的事情。要确保覆盖所有潜在的漏洞是一项十分艰巨的任务,这需要大量的经验和指导。在这些漏洞中,有一个和系统目录访问安全相关的漏洞,它通常会在程序进行路径遍 阅读全文
摘要:
在本文中,我们将学习如何在NodeJS中使用命令行函数进行注入漏洞攻击。 现代网站可以是一个复杂的软件,它由许多分布在不同环境中的部分组成。如果你的应用程序没有得到有效的保护,那么分布在这些环境中的每一个组成部分都有可能受到命令行注入漏洞的攻击。 本文将介绍如何在NodeJS中使用shell命令行函 阅读全文
摘要:
攻击者可以使用Node.js应用侵入你的系统。本文介绍如何阻止这种行为的发生。 当Node.js首次发布时,它引起了一场革命。它允许开发人员在服务器端运行JavaScript,这是浏览器的主要编程语言。随着时间的推移,Node.js变得越来越流行,并成为构建Web应用程序和API的首选工具。 Nod 阅读全文
摘要:
使用不可信的数据,通过调用不安全的递归函数来暴露默认原型 原型污染:基础 什么是原型污染? 原型污染是一种针对JavaScript运行时的注入攻击。通过原型污染,攻击者可以控制对象属性的默认值,从而篡改应用程序的逻辑并可能导致服务被拒绝,甚至在某些极端情况下远程执行代码。 现在,你是不是满脑子充满了 阅读全文
摘要:
正常情况下,我们按照下面的步骤操作即可进入Android的开发者模式(大部分安卓手机进入的方式都类似): 打开手机的设置,点击最下面的关于手机。 点击这里的“HarmonyOS版本”。连续点击多次(我的手机是7次),然后会弹出需要输入密码解屏。解锁之后屏幕上会提示“您正处于开发者模式!”。 返回到上 阅读全文
摘要:
如何使用spawn(),exec(),execFile()和fork() 对于单进程而言,Node.js的单线程和非阻塞特性表现地非常好。然而,对于处理功能越来越复杂的应用程序而言,一个单进程的CPU是远远无法满足需要的。 无论你的服务器有多强大,单线程都是远远不够用的。 事实上,Node.js的单 阅读全文
摘要:
介绍 在本文中,我试图以最简洁的方式来阐明JavaScript编程原理中对象类型赋值和原生类型赋值之间的区别,以及它们各自是如何工作的。这也是我希望在我的JavaScript编程生涯早期就已经理解的东西。 JS中的原生类型和对象类型 首先,让我们回顾一下JavaScript中不同的原生类型和对象类型 阅读全文
摘要:
对VS Code extension进行单元测试时通常会遇到一个问题,代码中所使用的VS Code编辑器的功能都依赖于vscode库,但是我们在单元测试中并没有添加对vscode库的依赖,所以导致运行单元测试时出错。由于vscode库是作为第三方依赖被引入到我们的VS Code extension中 阅读全文
摘要:
什么是单元测试? 所谓单元测试,是对软件中单个功能组件进行测试的一种软件测试方式,其目的是确保代码中的每一个基本单元都能正常运行。因此,开发人员在应用程序开发的整个过程(即代码编写过程)中都需要进行单元测试。在进入到软件开发的下一阶段之前,对程序进行单元测试是一个不错的主意。单元测试非常有用,它使用 阅读全文
摘要:
上一篇:微服务架构基本原理学习笔记(二) 五、微服务之间的通信 微服务通信模式 微服务本身并没有规定通信规则,换句话说,一个微服务并没有规定可以被哪些应用程序访问,或者被哪些其它的微服务调用。应用程序与微服务间的直接通信,或者微服务与微服务间的直接调用,往往会因为其中错综复杂的关系而导致级联故障,任 阅读全文
摘要:
上一篇:微服务架构基本原理学习笔记(一) 三、微服务架构 从一个已有的单体架构的应用程序开始进行微服务架构的重构往往是一个不错的选择。随着业务量和功能的增加,我们可以考虑使用微服务架构来扩充应用程序中原有的功能,或者每次添加新功能时,都为其创建一个新的微服务。这比从一开始就选择使用微服务架构进行设计 阅读全文
摘要:
一、什么是微服务 微服务是一种技术架构,通常我们可以把它理解为一组可以相互之间协同工作的应用程序或服务,这些应用程序或服务能够被单独部署到不同的服务器中,并且能够自主运行和维护。 微服务技术只是一个名称而已,或许我们在日常工作中已经或多或少在使用其中的一种或几种技术和架构,但我们并没有将其称之为微服 阅读全文
摘要:
上一篇我介绍了如何在VSCode Webview中实现点击链接下载图片或文件,本文介绍如何在默认浏览器中打开一个新的页面。 在浏览器中,如果要实现打开一个新的页面有许多种不同的方法,例如: window.open("https://www.cnblogs.com/jaxu", "_blank"); 阅读全文
摘要:
众所周知,在一个普通的HTML页面中,如果要实现一个链接点击后下载图片,只需要在页面上放一个<a>标签,然后将属性href的值指向图片的URL或者Base64字符串就可以了。或者按照stackoverflow上提供的方法动态创建<a>标签来完成图片的下载动作。不过原理都是相同的。 但是这个方法在VS 阅读全文
摘要:
今天早上打开电脑,更新了日常工作的github仓库,然后就是习惯性地执行了"npm install",发现报了下面这个错误: Error: error:0308010C:digital envelope routines::unsupported 顺便看了一下错误堆栈,发现是一个Node的内核文件抛 阅读全文
摘要:
参考sapui5 TreeTable控件的示例,我们发现所有的可展开列(即所谓的hierarchical data column)默认都在第一列,而且API中并没有给出对应的属性或方法来重新指定可展开列在table中的位置。 我们可以编写一个自定义控件,使其继承sapui5的TreeTable控件, 阅读全文
摘要:
前段时间在用Promise.all执行一个非常大批量的操作时遇到一个奇怪的问题。 这个Promise.all需要遍历一个指定目录中的所有文件,并以异步的方式读取文件内容并进行后续操作。由于目录中的文件数目比较多(大约8000+),Promise.all在执行的过程中有许多文件读取失败,但是如果指定一 阅读全文
摘要:
JavaScript使用符号三个点(...)作为剩余运算符和展开运算符,不过这两个运算符是有区别的。 最主要的区别就是,剩余运算符将用户提供的某些特定值的其余部分放入JavaScript数组中,而展开运算符则将可迭代的对象展开为单个元素。 例如下面这段代码,其中使用了剩余运算符将部分值存放到数组中: 阅读全文
摘要:
我们曾经试图遵循良好的编程习惯,在创建和定义方法时尽可能按照“职责单一”和“开放-封闭”原则将那些没有必要暴露出来的方法定义为私有方法,但是在编写测试用例时又往往对这些设计原则嗤之以鼻,因为你会为无法编写测试这些私有方法的测试用例而感到苦恼。 从互联网上找到的许多方法都不是最优解决方案。在本文中,我 阅读全文
摘要:
我们在开发Visual Studio Code插件时,经常需要通过Visual Studio Code提供的API来进行一些UI操作,例如打开文档、修改并保存文档内容、关闭文档、打开功能面板等,有些功能可以通过查看Visual Studio Code的官方文档找到对应的API接口和相应的对象,但很多 阅读全文