Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions JavaScript安全指南.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,16 @@ if (validURL(sUrl)) {
}
```

**1.1.3【必须】声明了定时器后清除定时器**

- `setInterval()、setTimeout()` 和 `cleanInterval()、cleanTimeout()` 应成对出现,否则易导致浏览器js引擎的内存泄漏。

**1.1.4【推荐】对象构造器应冻结原型链**


- *关联漏洞:javascript原型链污染攻击*


<a id="1.1.2"></a>
#### 1.2 流行框架/库的安全操作

Expand Down Expand Up @@ -193,6 +203,12 @@ click me
```

<a id="1.1.3"></a>

**1.2.3【必须】Vue.js上线前开启 Vue.config.productionTip = false 配置**

- 否则在线上环境可用浏览器插件Vue.js-devtools将vue实例信息逆向查看,vue实例的router对象可将系统内所有页面路径暴露


#### 1.3 页面重定向

**1.3.1【必须】限定跳转目标地址**
Expand Down Expand Up @@ -293,6 +309,8 @@ window.addEventListener("message", (e) => {

**2.2.1【必须】使用可信范围内的统计组件**

- 定期使用 `npm audit fix` 命令给依赖包升级打补丁, node_modules 文件夹只给予可读可写权限,不允许可执行

**2.2.2 【必须】禁止引入非可信来源的第三方JS**

<a id="1.2.3"></a>
Expand Down Expand Up @@ -898,7 +916,11 @@ app.get("/login", (req, res) => {
<a id="2.1.13"></a>
#### 1.13 Cookie与登录态

**1.13.1【推荐】为Cookies中存储的关键登录态信息添加http-only保护**
**1.3.1【推荐】后端在把cookie种到前端时,给cookie设置http-only、security属性**

**1.3.2【推荐】cookie播种的域范围应精确**

- 只在三级域名使用到的cookie不应播种给一级域名

*关联漏洞:纵深防护措施 - 安全性增强特性*

Expand All @@ -915,7 +937,7 @@ app.get("/login", (req, res) => {
<a id="2.2.2"></a>
#### 2.2 运行环境

**2.2.1 【必须】使用非root用户运行Node.js**
**2.2.1 【必须】使用非root用户运行Node.js,如有条件可升级为deno,可严格限制js对操作系统的访问权限**

<a id="2.2.3"></a>
#### 2.3 配置信息
Expand Down