Skip to content

Commit 79f65d8

Browse files
wbambergElchi3github-actions[bot]
authored
Add a new page on supply chain attacks (#41034)
* Add a new page on supply chain attacks * Add some glossary pages * Use MFA glossary entry * More references to MFA * Use CI glossary entry * tweak CI definition * Rename page * Apply suggestions from code review Co-authored-by: Florian Scholz <[email protected]> * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Defense summary should be H2 * Add a bit on SRI * Talk about lock files * lock file->lockfile * Don't use SMS as an authentication example * Link lockfiles to SBOMs --------- Co-authored-by: Florian Scholz <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 8792a4b commit 79f65d8

File tree

20 files changed

+312
-19
lines changed

20 files changed

+312
-19
lines changed

files/en-us/glossary/authentication/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ sidebar: glossarysidebar
77

88
**Authentication** is in general the process of proving that some fact is genuine. More specifically, in web security, it is the process of verifying the claimed identity of some entity, such as a user. This then makes it possible to decide whether to grant the user the access that they are requesting, such as being signed into a particular account.
99

10-
Authentication is typically performed by having a user present a user identifier along with a {{glossary("credential")}}, such as a password, a one-time SMS code, or an assertion signed with a private key. The system then checks the binding between the user identifier and the credential, so it can decide whether or not to authenticate the user.
10+
Authentication is typically performed by having a user present a user identifier along with a {{glossary("credential")}}, such as a password, a one-time code, or an assertion signed with a private key. The system then checks the binding between the user identifier and the credential, so it can decide whether or not to authenticate the user.
1111

1212
Types of authentication information, also called _authentication factors_, are commonly presented in three categories:
1313

1414
- Something the user knows, such as a password.
1515
- Something the user has, such as a phone.
1616
- Something the user is, such as a thumbprint.
1717

18-
Multi-factor authentication (MFA) systems require the user to provide more than one factor: for example, a password combined with a one-time code sent to the user's phone.
18+
{{glossary("Multi-factor authentication")}} (MFA) systems require the user to provide more than one factor: for example, a password combined with a one-time code generated using an authenticator app on the user's phone.
1919

2020
## See also
2121

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Continuous integration
3+
slug: Glossary/Continuous_integration
4+
page-type: glossary-definition
5+
sidebar: glossarysidebar
6+
---
7+
8+
Continuous integration (CI) is a software development practice in which changes to the source are frequently integrated into the main codebase.
9+
10+
It's an important practice whenever a team of developers is working on a shared codebase. In this situation, different developers might be making overlapping changes to the code at the same time, each in their personal branches. Frequent integration of each developer's changes makes it much less likely that conflicts will occur, and much easier to resolve them when they do.
11+
12+
As [Martin Fowler observes](https://martinfowler.com/articles/continuousIntegration.html#EveryonePushesCommitsToTheMainlineEveryDay):
13+
14+
> Integration is primarily about communication. Integration allows developers to tell other developers about the changes they have made. Frequent communication allows people to know quickly as changes develop.
15+
16+
A major aspect of CI is automated build and test: typically, in a CI system, as soon as a developer opens a pull request to commit their changes to the main branch, an automated process builds the product and runs tests. Once all the tests pass, the change can be peer-reviewed.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: Multi-factor authentication
3+
slug: Glossary/Multi-factor_authentication
4+
page-type: glossary-definition
5+
sidebar: glossarysidebar
6+
---
7+
8+
Multi-factor authentication (MFA) is an authentication method in which the user has to present more than one type of evidence to a system in order to be authenticated.
9+
10+
Most commonly, three different types of evidence (or _factors_) are distinguished:
11+
12+
- Something you know, such as a password or PIN
13+
- Something you have, such as a cellphone or a hardware security token
14+
- Something you are: a biometric such as a fingerprint
15+
16+
If an authentication system requires the user to provide more than one of these factors in order to authenticate, then it is a multi-factor system.
17+
18+
For example, the system might ask the user for a password as well as a code generated by the authenticator app on their phone.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Principle of least privilege
3+
slug: Glossary/Principle_of_least_privilege
4+
page-type: glossary-definition
5+
sidebar: glossarysidebar
6+
---
7+
8+
The principle of least privilege is a design consideration in computer security, according to which entities (including users, system processes, or programs) should be granted the minimum amount of access that they need in order to do their jobs.
9+
10+
For example, in a software development team, all members might need the ability to write to the source code repository, but only a subset of the team might need the ability to alter the repository's security settings.
11+
12+
Applying the principle of least privilege reduces the potential damage when an entity is compromised by an attacker: so for example, if a team member's account is compromised, then the damage that the attacker can do is limited by the privileges that were granted to that team member.

files/en-us/learn_web_development/core/frameworks_libraries/svelte_typescript/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ And if you pass something that is not a number, it will complain about it:
215215

216216
![Type checking in VS Code - the ms variable has been given a non-numeric value](06-vscode-type-checking-in-components.png)
217217

218-
The application template has a `check` script configured that runs `svelte-check` against your code. This package allows you to detect errors and warnings normally displayed by a code editor from the command line, which makes it pretty useful for running it in a continuous integration (CI) pipeline. Just run `npm run check` to check for unused CSS, and return A11y hints and TypeScript compile errors.
218+
The application template has a `check` script configured that runs `svelte-check` against your code. This package allows you to detect errors and warnings normally displayed by a code editor from the command line, which makes it pretty useful for running it in a {{glossary("continuous integration")}} (CI) pipeline. Just run `npm run check` to check for unused CSS, and return A11y hints and TypeScript compile errors.
219219

220220
In this case, if you run `npm run check` (either in the VS Code console or terminal) you will get the following error:
221221

files/en-us/learn_web_development/extensions/server-side/express_nodejs/skeleton_website/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ npm install
401401
```
402402

403403
> [!NOTE]
404-
> It is a good idea to regularly update to the latest compatible versions of your dependency libraries — this may even be done automatically or semi-automatically as part of a continuous integration setup.
404+
> It is a good idea to regularly update to the latest compatible versions of your dependency libraries — this may even be done automatically or semi-automatically as part of a {{glossary("continuous integration")}} setup.
405405
>
406406
> Usually library updates to the minor and patch version remain compatible.
407407
> We've prefixed each version with `^` above so that we can automatically update to the latest `minor.patch` version by running:

files/en-us/learn_web_development/extensions/testing/introduction/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ Finally, you can get smarter with your testing using auditing or automation tool
130130
- see if a button click causes something to happen successfully (like for example, a map displaying), displaying the results once the tests are completed
131131
- take a screenshot of each, allowing you to see if a layout is consistent across the different browsers.
132132

133-
If you wish to invest money in testing, there are also commercial tools that can automate much of the setup and testing for you (such as [Sauce Labs](https://saucelabs.com/) and [Browser Stack](https://www.browserstack.com/)). These kinds of tools usually enable a continuous integration workflow, where code changes are automatically tested before they are allowed to be submitted into your code repository.
133+
If you wish to invest money in testing, there are also commercial tools that can automate much of the setup and testing for you (such as [Sauce Labs](https://saucelabs.com/) and [Browser Stack](https://www.browserstack.com/)). These kinds of tools usually enable a {{glossary("continuous integration")}} workflow, where code changes are automatically tested before they are allowed to be submitted into your code repository.
134134

135135
#### Testing on prerelease browsers
136136

files/en-us/learn_web_development/extensions/testing/your_own_automation_environment/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,7 @@ So this is pretty cool. We have tested this locally, but you could set this up o
795795

796796
## Integrating Selenium with CI tools
797797

798-
As another point, it is also possible to integrate Selenium and related tools like LambdaTest, and Sauce Labs with continuous integration (CI) tools — this is useful, as it means you can run your tests via a CI tool, and only commit new changes to your code repository if the tests pass.
798+
As another point, it is also possible to integrate Selenium and related tools like LambdaTest, and Sauce Labs with {{glossary("continuous integration")}} (CI) tools — this is useful, as it means you can run your tests via a CI tool, and only commit new changes to your code repository if the tests pass.
799799

800800
It is out of scope to look at this area in detail in this article, but we'd suggest getting started with Travis CI — this is probably the easiest CI tool to get started with and has good integration with web tools like GitHub and Node.
801801

files/en-us/learn_web_development/getting_started/environment_setup/command_line/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ With Prettier there's a number of ways automation can be achieved and though the
464464
465465
- Before you commit your code into a git repository using [Husky](https://github.com/typicode/husky).
466466
- Whenever you hit "save" in your code editor, be it [VS Code](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode), or [Sublime Text](https://packagecontrol.io/packages/JsPrettier).
467-
- As part of continuous integration checks using tools like [GitHub Actions](https://github.com/features/actions).
467+
- As part of {{glossary("continuous integration")}} checks using tools like [GitHub Actions](https://github.com/features/actions).
468468
469469
Our personal preference is the second one — while using say VS Code, Prettier kicks in and cleans up any formatting it needs to do every time we hit save. You can find a lot more information about using Prettier in different ways in the [Prettier docs](https://prettier.io/docs/).
470470

files/en-us/web/accessibility/guides/information_for_web_authors/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Tools to integrate into your build process, programmatically adding accessibilit
4141
- [Lighthouse Audits](https://github.com/GoogleChrome/lighthouse/blob/main/docs/readme.md#using-programmatically)
4242
- [AccessLint.js](https://github.com/accesslint/accesslint.js/tree/master)
4343

44-
Continuous integration tools to find accessibility issues in your GitHub pull requests:
44+
{{glossary("Continuous integration")}} tools to find accessibility issues in your GitHub pull requests:
4545

4646
- [AccessLint](https://accesslint.com/)
4747

0 commit comments

Comments
 (0)