Skip to content

Commit ba35e66

Browse files
Minor fixes for lab links
Signed-off-by: David A. Wheeler <[email protected]>
1 parent 1d36c30 commit ba35e66

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

secure_software_development_fundamentals.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,9 +1369,9 @@ First, make sure that you identify all inputs from potentially untrusted users,
13691369

13701370
At each remaining input from potentially untrusted users you need to validate the data that comes in. These input validation checks are a kind of security check, so you need to make sure that these input validation checks are non-bypassable, as we discussed earlier in the design principle *non-bypassability*. **As a reminder:** only trust security checks (including input validation) when they run on an environment you trust. This is especially important for JavaScript programs - since JavaScript can run on web browsers, it is easy to send security checks to the web browser and forget that *attackers* can control their own web browsers. Any input validation checks you do in an untrusted environment cannot be trusted. If you trust your server environment and not the client environment, then all security-relevant checks must be done in the server environment. We discussed this already, but it is important to emphasize because it is such a common and serious problem. Now let’s move on to how to actually validate input.
13711371

1372-
### Lab: Input Validation Basics Introduction
1372+
#### Lab: Input Validation Basics Introduction
13731373

1374-
🧪 LAB: This course includes some labs. Labs are optional, but you're *strongly* encouraged to try them! Please try lab [hello](https://best.openssf.org/labs/hello.html) to see how the labs work in this course.
1374+
🧪 Lab: This course includes some labs. Labs are optional, but you're *strongly* encouraged to try them! Please try lab [hello](https://best.openssf.org/labs/hello.html) to see how the labs work in this course.
13751375

13761376
IF a section has a quiz and one or more labs, we'll present the
13771377
quiz first. This order is intentional.
@@ -1445,7 +1445,7 @@ Many programs need to validate text fields, but those fields’ rules are not de
14451445

14461446
#### Lab: Input Validation: A Few Simple Data Types
14471447

1448-
🧪 LAB: Please try lab [input1](https://best.openssf.org/labs/input1.html).
1448+
🧪 Lab: Please try lab [input1](https://best.openssf.org/labs/input1.html).
14491449
Labs are optional, but we encourage you to try them.
14501450

14511451
### Sidequest: Text, Unicode, and Locales
@@ -1578,7 +1578,7 @@ There is far more to regexes. In fact, there is a whole book on just regular exp
15781578

15791579
#### Lab: Introduction to Regular Expressions
15801580

1581-
🧪 LAB: Please try lab [regex0](https://best.openssf.org/labs/regex0.html), which lets you experiment with simple regex notation.
1581+
🧪 Lab: Please try lab [regex0](https://best.openssf.org/labs/regex0.html), which lets you experiment with simple regex notation.
15821582
Labs are optional, but we encourage you to try them.
15831583

15841584
### Using Regular Expressions for Text Input Validation
@@ -1659,9 +1659,9 @@ Remember, **^...$** are required to make this an allowlist (the text *must* matc
16591659

16601660
#### Lab: Using Regular Expressions for Text Input Validation
16611661

1662-
🧪 LAB: Please try lab [regex1](https://best.openssf.org/labs/regex1.html), which lets you experiment using regex notation to validate strings.
1662+
🧪 Lab: Please try lab [regex1](https://best.openssf.org/labs/regex1.html), which lets you experiment using regex notation to validate strings.
16631663

1664-
🧪 LAB: Please try lab [input2](https://best.openssf.org/labs/input2.html), which lets you experiment in how to use a regex in a real program.
1664+
🧪 Lab: Please try lab [input2](https://best.openssf.org/labs/input2.html), which lets you experiment in how to use a regex in a real program.
16651665

16661666
Labs are optional, but we encourage you to try them.
16671667

@@ -1722,7 +1722,7 @@ Note: ReDoS is often *not* a real vulnerability. Such regexes can *only* be a vu
17221722

17231723
#### Lab: Countering ReDoS Attacks on Regular Expressions
17241724

1725-
🧪 LAB: Please try lab [redos](https://best.openssf.org/labs/redos.html), which lets you experiment in how to counter redos attacks in a real program.
1725+
🧪 Lab: Please try lab [ReDoS](https://best.openssf.org/labs/redos.html), which lets you experiment in how to counter redos attacks in a real program.
17261726
Labs are optional, but we encourage you to try them.
17271727

17281728
## Input Validation: Beyond Numbers and Text
@@ -2105,7 +2105,7 @@ A cast changes a value’s type (that is what it is *for*), so by itself that is
21052105

21062106
#### Lab: Avoid Incorrect Conversion or Cast
21072107

2108-
🧪 LAB: Please try lab [conversion](https://best.openssf.org/labs/conversion.html), which lets you experiment in how to counter improper conversion.
2108+
🧪 Lab: Please try lab [conversion](https://best.openssf.org/labs/conversion.html), which lets you experiment in how to counter improper conversion.
21092109
Labs are optional, but we encourage you to try them.
21102110

21112111
## Processing Data Securely: Undefined Behavior / Memory Safety
@@ -2224,7 +2224,7 @@ Correct. Of course, it is safer to not use memory-unsafe languages in the first
22242224

22252225
#### Lab: Countering Out-of-Bounds Reads and Writes (Buffer Overflow)
22262226

2227-
🧪 LAB: Please try lab [oob1](https://best.openssf.org/labs/oob1.html), which lets you experiment in how to counter an out-of-bounds vulnerability.
2227+
🧪 Lab: Please try lab [oob1](https://best.openssf.org/labs/oob1.html), which lets you experiment in how to counter an out-of-bounds vulnerability.
22282228
Labs are optional, but we encourage you to try them.
22292229

22302230
### Double-free, Use-after-free, and Missing Release
@@ -2810,7 +2810,7 @@ This is true. Not only is it more efficient, but the operating system shell usua
28102810

28112811
#### Lab: OS Command (Shell) injection
28122812

2813-
🧪 LAB: Please try lab [shell-injection](https://best.openssf.org/labs/shell-injection.html), which lets you experiment in how to counter an OS shell (injection) vulnerability.
2813+
🧪 Lab: Please try lab [shell-injection](https://best.openssf.org/labs/shell-injection.html), which lets you experiment in how to counter an OS shell (injection) vulnerability.
28142814
Labs are optional, but we encourage you to try them.
28152815

28162816
### Other Injection Attacks
@@ -3024,7 +3024,7 @@ Error-handling is a fact of life, but you need to make sure your error handling
30243024

30253025
#### Lab: Handling Errors
30263026

3027-
🧪 LAB: Please try lab [handling-errors](https://best.openssf.org/labs/handing-errors.html), which lets you experiment in how to counter an OS shell (injection) vulnerability.
3027+
🧪 Lab: Please try lab [handling-errors](https://best.openssf.org/labs/handling-errors.html), which lets you experiment in how to counter an OS shell (injection) vulnerability.
30283028
Labs are optional, but we encourage you to try them.
30293029

30303030
### Logging
@@ -3359,7 +3359,8 @@ This is true. CSP does not eliminate all problems, but CSP does let you forbid i
33593359

33603360
#### Lab: Content Security Policy (CSP)
33613361

3362-
🧪 LAB: Please try lab [csp1](https://best.openssf.org/labs/csp1.html).
3362+
🧪 Lab: Please try lab [csp1](https://best.openssf.org/labs/csp1.html),
3363+
which lets you experiment with a Content Security Policy (CSP).
33633364
Labs are optional, but we encourage you to try them.
33643365

33653366
### Other HTTP Hardening Headers

0 commit comments

Comments
 (0)