XSS 和 CSRF

XSS

XSS (Cross-site scripting) 跨站脚本攻击,首字母缩写本应为 CSS,但因为 CSS 在网页设计领域已经被广泛指层叠样式表(Cascading Style Sheets),所以将意为“交叉”的 Cross 改以交叉形的 X 做为缩写。

Read More

SSH

SSH 是一种网络协议,用于计算机之间的加密登录。传统的网络服务程序,如:FTP、PoP 和 Telnet 在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,非常容易就可以截获这些口令和数据。

除了可以代替 Telnet 做远程登录外(Telnet 因为采用明文传送报文,安全性不好,很多 Linux 服务器都不开放 Telnet 服务,要想使用 Telnet 需要安装),SSH 还可以为 FTP、PoP、甚至为 PPP 提供一个安全的”通道”(比如 SFTP)。

Read More

指针和引用

指针是内存地址,指针变量是用来存放内存地址的变量,指向内存的一个存储单元。

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h> 

int main() {
int a = 10;
int *p1;
int **p2;

p1 = &a; // 指针 p1 指向 a
p2 = &p1; // 指针 p2 指向指针 p1,即 p2 的内容为 p1 的地址

printf("%d\n", *p1); // 10
printf("%d\n", **p2); // 10
}
Read More

NPM 私仓

npm 私仓可用于提高包的下载速度和保护内部代码,常见的 npm 私仓技术方案有以下几种:

1
2
3
4
5
* npm on-site  # 缺点是收费,而且 npm 在国内访问慢
* Git + SSH 直接引用到 GitHub 项目地址 # 缺点是不能更新(npm update),不能使用 Semver(语义化版本规范),而且 URL 不美观
* cnpm
* Sinopia/Verdaccio
* Nexus
Read More

Git Pages

GitHub Pages 用于介绍用户个人和托管在 GitHub 中的项目的,免费,虽然空间和流量有限制(空间上限 1G、月流量上限 100G、每小时更新不超过 10 次),但绝对够用。

Read More

Git Flow

Git 工作流(Work Flow)是一种分支管理策略。在开发人员较少,项目不复杂时,可以采用简单的工作流,比如只有一个 Master 分支,但当项目庞大,迭代周期长,多人协作,多需求并行时,就需要更加严格的 Work Flow 来管理开发、测试、发布和热修复了。在 Git 中常见的工作流有 Git Flow、GitHub Flow、GitLab Flow。

Read More

Git Commit Message Style Guide

在 Git 中,我们使用 git commit -m "xxx" 来提交代码,参数 -m 用来指定 Commit Message(提交说明),直接执行 git commit 会进入编辑器模式,可提交多行说明。Commit Message 应规范化,规范化的 Commit Message 能带来很多好处:

Read More

SFTP

SFTP 是 Secure File Transfer Protocol 的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。SFTP 与 FTP 有着几乎一样的语法和功能。

Read More

造轮子

不依赖任何框架、库,无需编译,用最原生的 JavaScript 造轮子。

Read More

树形结构

树形结构是一种层次嵌套的结构。它提供了一种有序的组织方式,能够方便地表示层次关系和结构化数据,在文件系统、数据库索引、DOM 等场景中被广泛应用。树形结构的遍历、搜索和操作等算法也是计算机中常见的问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const tree = [
{
"id": 74,
"parentId": null,
"children": [
{
"id": 62,
"parentId": 74
},
{
"id": 86,
"parentId": 74,
}
]
}
]
Read More