Node.js开发调试总结
自己进行 Node.js 也有很长一段时间了,更准确地说是进行编程开发。编程开发给我的感觉就是这样的一个状态变化,我总是在不断地重复设计逻辑/编写逻辑/验证逻辑的 loop,如果遇到了逻辑验证失败的情况就需要增加调试逻辑并重新重复一遍 loop。一个程序的开发就是由这样的若干个 loop 组成。如…
2022-06-22
随笔 Node.js
使用WebAssembly构建FaaS服务
有一段是没有写博客了,这一段时间了解了不少新技术,但是没来得及写成博客总结。WebAssembly和Rust是我一直在关注的两项技术,这段时间使用它们编写了一个FaaS服务工具。 动机 作为一个Web开发者,我总希望能有这样一套工具/系统/流程。它能给我提供一套模板,我只需要简单地编写Restfu…
2022-06-03
WebAssembly 随笔
动手写一个web pty
前言 最近看了《the linux programming interface》[1],总体感觉这是本好书,补充了一些课内 OS 没有告诉我,但是同样重要的东西,比较清晰地介绍了一些比较重要的概念,如文件空洞、作业控制/进程组、标准信号/实时信号、进程的内存模型、僵尸进程、进程间通信、socket…
2021-11-12
随笔
《the linux programming interface》练习
《the linux programming interface》 习题 第三章 3-1 magic number 隐藏着 Torvalds 和他女儿们的生日 https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d36…
2021-09-28
随笔
NPM上的软件供应链攻击
前言 今年经历了一次软件供应链攻击,为此觉得有必要想详细复盘,并了解一些相关的攻击手段和可能的防范措施。NPM 有着丰富的生态,但是其中依赖包质量参差不齐,容易成为黑客进行渗透的手段。 经历复盘 由于构建流水线的的 NPM 版本过低,不支持Dependency Alias(NPM 6.9 及以上支…
2021-09-07
随笔 NPM
基于Diffie-Hellman的三方密钥交换算法的加密聊天室
前言 这是信息安全综合实验实践周的大作业,基于此我重新学习了 Diffie-Hellman 算法,TCP 网络通信,还有 protobuf 的使用,也对 Electron 和 Nodejs 的 Stream 也有了更为深刻的了解。 https://github.com/chenks12138/ch…
2021-06-20
随笔
使用Stream编写Electron应用
Stream 的概念 Steram 是 Nodejs 中比较重要的概念,它是对一些流动数据的处理过程的抽象。常见的像标准输入/输出流、文件、Socket、压缩过程都可以被抽象成 Nodejs 中的流。所有的流本质上都是 EventEmitter。 A stream is an abstract i…
2021-05-04
随笔
Conent-Security-Policy
CSP(Content-Security-Policy) 大纲 基本概念 目前 CSP 的使用情况 一些具体场景下 CSP 的应用 小结 基本概念 CSP 的全称是Content-Security-Policy[1] ,是一种计算机安全标准,可以防御跨站脚本、点击劫持等代码注入攻击,阻止恶意内容在…
2021-03-15
随笔
搭建一个基于同构渲染的NYR
前言 从一开始的静态网页以及浏览器的出现,出现了文档链接其他文档这样的交互方式。后来 JavaScript 的出现了,通过在文档中编写脚本,借助浏览器的能力,文档和用户的交互有了更多的可能。再到后来 PHP、ASP 以及各种 CGI 应用的出现,CGI 应用通过自身的访问数据库、文件系统等各种能力…
2021-02-12
随笔
NCTF2020复盘
前言 从大一开始我每年都打 NCTF,~~除了恰烂钱,~~感觉每次都可以学到点不一样的东西。今年的 web 题有点不一样,感觉挺有意思的,加深了我对 JavaScript 相关的一些安全问题的理解。 JS-world 这道题涉及到的是 ejs 模板的注入问题,同时传入的后端的信息会先经过前端过…
2020-11-23
随笔 安全
HTTP连接模型
前言 HTTP 层的数据传输对于 web 开发人员来说是一个黑盒,但是平时的开发又离不开它。因此有必要去了解一下它是如何保障我们的数据可以被高效、准确地传输。 连接模型 抓包使用环境 macOS 10.15.7 Nginx 1.18.0 Chrome 86.0.4240.80 Wireshark …
2020-10-23
随笔 计算机网络
web应用加载优化相关
前言 大一上时刚学会点 php,然后自己是学习委员,作为学习委员需要经常收电子版的实验报告,从 QQ 上将实验报告一份一份下载很麻烦,为了提高效率就萌生了写一个提交作业的网站的想法。在这里我第一个使用 mysql+php+python 搭建了一个项目,现在回头看,之前写的代码确实不怎么好。没有一…
2020-10-10
随笔
栈溢出利用
概述 软件漏洞分析课程的一次作业,利用了栈内存的缓冲区溢出,覆盖了返回地址,从而达到劫持控制流的目的。如果希望能具体了解一下图中 c 函数调用的实现,可以看一下 B 站上陈渝教授的这个视频。 EXP1 使用gdb进行调试,strcpy函数可以被利用引起缓冲区溢出,目前的问题时需要多长的字符串,以…
2020-09-16
随笔
对JavaScript的异步机制的理解
单线程异步 JavaScript是一门单线程异步的语言。这听起来似乎有点奇怪,只有一个 js 线程,为什么还能实现异步的功能。实际上,js 的异步操作的执行例如网络请求、定时器,并不是在 js 线程上执行,这些能力是由宿主环境提供的。例如在浏览器上有五大线程,GUI渲染引擎线程、JavaScrip…
2020-09-08
JavaScript 随笔
使用go协程优化求和算法
前言 我的主力开发语言是JavaScript,但是 js 对多线程的支持并不是特别好。在入门golang后,了解到了go协程和channel,想试一试多线程。go原生对并发很友好,我这里是希望尝试使用go协程优化大数组求和。 对比 进行对比的两个函数 func sum1(bigArray []in…
2020-07-27
go 随笔
查看全部