Skip to content

Commit cd1af84

Browse files
committed
docs: style guide pass on security hub
- punctuation inside quotes - spell out acronyms on first use - Node.js, not Node - sentence-case title - "application" consistently - serial comma in heading
1 parent 67e081e commit cd1af84

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

‎src/content/pages/en/security/index.mdx‎

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
title: Security Checklist
2+
title: Security checklist
33
description: A checklist of the security decisions Express leaves to you, with a page on each one.
44
---
55

66
import Alert from '@components/primitives/Alert/Alert.astro';
77

88
Express intentionally leaves most security decisions up to application developers. This page is a checklist of those decisions, to use while building or deploying an Express application.
99

10-
Not every item will apply to your application, but consider each question before going to production. For items that apply, a "no", or a question you don't understand, means there is a fix to make or a topic to look at more closely. Each question links to a page covering what Express does, what can go wrong, and what to do about it. Questions without links are out of scope of Express itself or its family of middleware. The questions are ordered roughly by when you meet them while building an application.
10+
Not every item will apply to your application, but consider each question before going to production. For items that apply, a "no," or a question you don't understand, means there is a fix to make or a topic to look at more closely. Each question links to a page covering what Express does, what can go wrong, and what to do about it. Questions without links are out of scope of Express itself or its family of middleware. The questions are ordered roughly by when you meet them while building an application.
1111

12-
This list is a gift to the Express community, from the community. It is not complete, and it is not a substitute for a general web security checklist. [OWASP](https://owasp.org/) covers the things this guide won't.
12+
This list is a gift to the Express community, from the community. It is not complete, and it is not a substitute for a general web security checklist. The [Open Worldwide Application Security Project (OWASP)](https://owasp.org/) covers the things this guide won't.
1313

1414
## What you should already know
1515

@@ -23,7 +23,7 @@ This documentation focuses on the risks and mitigations specific to Express rath
2323

2424
## Express threat model
2525

26-
You might ask yourself "if I have to do all this work to secure my application, does that mean Express isn't secure?". Fair question!
26+
You might ask yourself "if I have to do all this work to secure my application, does that mean Express isn't secure?" Fair question!
2727

2828
The Express project takes responsibility for the security of its own code through ongoing security reviews, vulnerability reports, and fixes. Developers are responsible for the security of the applications they build with it, including how they configure and use Express and its middleware. The [Express threat model](https://github.com/expressjs/security-wg/blob/main/docs/ThreatModel.md) explains where that boundary sits.
2929

@@ -36,8 +36,8 @@ If you believe you have discovered a security vulnerability in Express, please s
3636
## Before you write a route
3737

3838
- Are you on a [supported Express release](/support)?
39-
- Do you know where TLS terminates in front of your app?
40-
- Does CI run `npm audit` or an equivalent, and does someone act on it?
39+
- Do you know where Transport Layer Security (TLS) terminates in front of your application?
40+
- Does continuous integration (CI) run `npm audit` or an equivalent, and does someone act on it?
4141
- Are you watching [Express releases](https://github.com/expressjs/express/releases) and [security advisories](https://github.com/expressjs/express/security/advisories)?
4242

4343
## Untrusted input
@@ -50,7 +50,7 @@ If you believe you have discovered a security vulnerability in Express, please s
5050

5151
- Are your route patterns free of [repetition that can be forced into catastrophic backtracking](/security/route-patterns)?
5252
- Is authentication and authorization middleware [mounted before every route it protects](/security/route-patterns)?
53-
- Does anything in front of the app that filters by path [match Express's routing rules](/security/route-patterns)?
53+
- Does anything in front of the application that filters by path [match Express's routing rules](/security/route-patterns)?
5454

5555
## Response sinks
5656

@@ -67,8 +67,8 @@ If you believe you have discovered a security vulnerability in Express, please s
6767

6868
## Proxies and client identity
6969

70-
- Is `trust proxy` [set to match your deployment](/security/proxies), and never `true` when a client can reach the app directly?
71-
- If your app is behind a proxy, is [`trust proxy` configured](/security/proxies) so features using `req.ip`, `req.hostname`, or `req.protocol` receive the correct client information?
70+
- Is `trust proxy` [set to match your deployment](/security/proxies), and never `true` when a client can reach the application directly?
71+
- If your application is behind a proxy, is [`trust proxy` configured](/security/proxies) so features using `req.ip`, `req.hostname`, or `req.protocol` receive the correct client information?
7272

7373
## Error handling
7474

@@ -80,15 +80,15 @@ If you believe you have discovered a security vulnerability in Express, please s
8080

8181
- Does every body parser have a [`limit` that matches what the route expects](/security/resource-exhaustion)?
8282
- Is there [rate limiting on login and other expensive endpoints](/security/resource-exhaustion)?
83-
- Are [server timeouts set](/security/resource-exhaustion), or is something in front of Node absorbing slow clients?
83+
- Are [server timeouts set](/security/resource-exhaustion), or is something in front of Node.js absorbing slow clients?
8484

85-
## Sessions, cookies, CSRF, CORS
85+
## Sessions, cookies, CSRF, and CORS
8686

8787
- Are cookies set with [`Secure`, `HttpOnly`, and `SameSite`](/security/sessions)?
8888
- Is the [cookie signing secret](/security/sessions) loaded from the environment rather than source?
8989
- Is the [session store](/security/sessions) something other than `MemoryStore` in production?
90-
- Do cookie-authenticated routes that change state have [CSRF protection](/security/csrf)?
91-
- Does CORS use an [explicit origin allowlist](/security/cors)?
90+
- Do cookie-authenticated routes that change state have [cross-site request forgery (CSRF) protection](/security/csrf)?
91+
- Does cross-origin resource sharing (CORS) use an [explicit origin allowlist](/security/cors)?
9292

9393
## Logging
9494

0 commit comments

Comments
 (0)