《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
随笔
leetcode每日一题
2021.03.15 螺旋矩阵 https://leetcode-cn.com/problems/spiral-matrix/ 2021.03.16 螺旋矩阵 II https://leetcode-cn.com/problems/spiral-matrix-ii/ 2021.03.17 不同的子…
2021-04-05
leetcode
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 随笔
原型链和this指向问题
JavaScript 本身是没有类继承的,但是我们又可以使用 ES6 中的class关键字来写一个类,它的底层实现是原型链。原型链的介绍在MDN--原型链上的介绍已经很详细了,但我想分享一下我的理解,如果不正确的地方,欢迎指出。 什么是原型链 在 chrome 的 devtool 中,我们打印一个…
2020-07-11
javascript
redux-saga初试
前言 redux是一个JavaScript的状态容器,redux-saga是 redux 的一个中间件,react-redux是一个通过高阶函数的方式实现连接 redux 和 react 组件的库。redux有state,action,dispatch,reducer的概念。通过 dispatch…
2020-06-13
JavaScript 随笔
查看全部