You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/11-authentication.livemd
+3-3
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ One of two things follow:
10
10
11
11
Imagine you get a knock on your door. You ask who it is, and the person on the other side says you have a package delivery. In fact, you're not expecting a package and you can see the person is not wearing a uniform and doesn't have a package in their hands. Something doesn't match. They don't seem to be who they say they are and so, you don't open the door.
12
12
13
-
Authentication is the mechanism that helps guard the front door of an application. It's the mechanism that helps control who gets into your system and if they are there legitimately.
13
+
Authentication is the mechanism that helps guard the front door of an application. It's the mechanism that helps control who gets into your system and if they are there legitimately.
14
14
15
15
## Table of Contents
16
16
@@ -59,7 +59,7 @@ Tokens are long strings of random characters used to identify an entity, session
59
59
### OAuth
60
60
Open Authorization(OAuth) is a protocol in which a multi-step arrangement generates a token for a specific users, the user presents as a credential in lieu of a password. There is an extra server (authorization/token generating service or server) that after a user authenticates with it, it generates a token, and brokers authentication/authorization between initial entity and a resource.
61
61
62
-
Originally built for authorization, as it's name suggests, it has evolved for use in the authentication and authorization mechanisms. A very good resource that describes the OAuth in context of it's history and current implementations is here: https://www.youtube.com/watch?v=996OiexHze0
62
+
Originally built for authorization, as its name suggests, it has evolved for use in the authentication and authorization mechanisms. A very good resource that describes the OAuth in context of its history and current implementations is here: https://www.youtube.com/watch?v=996OiexHze0
63
63
64
64
Why use OAuth? When users need access to third party services, outside of your environment where you don't want to share your credentials with those third parties. In OAuth protocol/architecture, an authorization service brokers access and grants users an access token to present, in place of credentials.
65
65
@@ -140,7 +140,7 @@ OWASP Top 10 for Web Applications A07:2021-Identification and Authentication Fai
140
140
## Prevention and Countermeasures
141
141
Use built and tested authentication mechanisms in your code language framework.
142
142
143
-
Authentication is a key component of an application but given its integration with some of the other concepts mentioned in this module, it's implementation in your products can become complex. This module touched on some of the highlights but please refer to the references below for extensive explanations of authentication and related.
143
+
Authentication is a key component of an application but given its integration with some of the other concepts mentioned in this module, its implementation in your products can become complex. This module touched on some of the highlights but please refer to the references below for extensive explanations of authentication and related.
Copy file name to clipboardExpand all lines: modules/12-cryptography.livemd
+3-3
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,15 @@
2
2
3
3
## Introduction
4
4
5
-
Cryptography is the process of transforming information or data from it's original form into one that is unreadable by systems, tools, or people unless they have a key. The part of the process that converts source data/information into the unreadable version is called encryption. Reversing that process is called decryption.
5
+
Cryptography is the process of transforming information or data from its original form into one that is unreadable by systems, tools, or people unless they have a key. The part of the process that converts source data/information into the unreadable version is called encryption. Reversing that process is called decryption.
6
6
7
7
Like many concepts/technologies in security, cryptography is not new. Centuries of devisings ways to send messages between and among
8
8
known and trusted senders/receivers while making those messages unreadable for enemies or anyone else for whom the message is not intended.
9
9
Secret codes, etc.
10
10
11
11
Cryptography, like speaking or writing in code, is used whenever there something that needs to be kept secret in an environment where there are multiple other parties who could see or hear the secret but are not the intended recipient. The sender and receiver agree upon a code to exchange messages. Additionally, written notes can be stored and unless a reader has the code, won't know what the actual message is.
12
12
13
-
Cryptography is used throughout applications to protect sensitive information that while is needed for the operation of the application and it's components, is not intended to be openly shared. This module highlights how cryptography is applied
13
+
Cryptography is used throughout applications to protect sensitive information that while is needed for the operation of the application and its components, is not intended to be openly shared. This module highlights how cryptography is applied
14
14
15
15
## Table of Contents
16
16
@@ -77,7 +77,7 @@ use HTTPS which implements encryption over a channel. Diffie-Hellman
77
77
78
78
Hashing is sometimes implemented alongside encryption but has a different purpose. Cryptography used for confidentiality; keeping information secret except for intended recipient/audience.
79
79
80
-
Hashes are used to ensure the integrity of the data, meaning ensuring from it's creation/generation to it's final state, it remains unmodified and untampered with. Hash algorithms are one way functions that - compare starting hash from known good data, to end hash which will indicate changes. Hashing passwords is a common application. Comparing hashes to determine if correct password entered.
80
+
Hashes are used to ensure the integrity of the data, meaning ensuring from its creation/generation to its final state, it remains unmodified and untampered with. Hash algorithms are one way functions that - compare starting hash from known good data, to end hash which will indicate changes. Hashing passwords is a common application. Comparing hashes to determine if correct password entered.
Copy file name to clipboardExpand all lines: modules/3-ssdlc.livemd
+1-1
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ More than that, while it may be convenient for testing / building typically in p
37
37
38
38
There are a number of different ways you can manage your secrets for use in production systems. Most of them are implementation specific which varies on your build and deploy processes.
39
39
40
-
A very easy way to prevent secrets being added to go though is to access them via Environment Variables!
40
+
A very easy way to prevent secrets being added to files is to access them via Environment Variables!
Copy file name to clipboardExpand all lines: modules/4-graphql.livemd
+1-1
Original file line number
Diff line number
Diff line change
@@ -166,7 +166,7 @@ In addition to strategies like rate limiting to protect APIs in general, another
166
166
167
167
### Description
168
168
169
-
Resource intensive queries, like those where a GraphQL query tries to traverse and then return a significant amount of highly nest data can cause a server/service to expend a significant amount of it's processing power and other resources. These high cost queries can render a server and therefore the application useless.
169
+
Resource intensive queries, like those where a GraphQL query tries to traverse and then return a significant amount of highly nested data can cause a server/service to expend a significant amount of its processing power and other resources. These high cost queries can render a server and therefore the application useless.
170
170
171
171
One approach for implementing validation on incoming queries to determine their "cost" in terms of the resources the use. Queries are defined by how much load they place on the server/service processing the request, allowing developers to plan for how best to manage resources. This is a little like making a budget.
@@ -210,7 +212,7 @@ For systems that use third party ad serving networks, such as Google's AdSense /
210
212
211
213
Under an opt out scheme, consumers are notified via an alert or window when they load a website. The user must consent to the notice before they can navigate the site and any cookies are planted. At a minimum, the notice is to contain the following: disclosure of information gathering practices, the uses for this information, and policies for processing and disposing of this data.
212
214
213
-
Opt-out cookies are essentially cookies used to avoid cookies. When a website creates an opt-out cookie in your browser folder, it enables you to block that same website from installing future cookies.With this, Opt Out cookies offer safeguards for user information, and help secure systems against potential security concerns regarding “hidden” cookies
215
+
Opt-out cookies are essentially cookies used to avoid cookies. When a website creates an opt-out cookie in your browser folder, it enables you to block that same website from installing future cookies.With this, Opt Out cookies offer safeguards for user information, and help secure systems against potential security concerns regarding “hidden” cookies
214
216
215
217
#### Opt In Cookies
216
218
@@ -220,7 +222,7 @@ Opt-in is the process that describes an affirmative action user takes to offer t
220
222
221
223
If you want to be legally compliant, it is safer to have both the options with opt-out as the default.
Copy file name to clipboardExpand all lines: modules/8-cicd.livemd
+1-1
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Mix.install([
13
13
14
14
Just like there's more to making software than just writing code, there's more to _securing_ software than just reviewing code.
15
15
16
-
Part of the development lifecycle includes deploying code and it is here that we can institute automated tooling and tests to assist in the detection of insecurities and potentially prevent vulnerabilities from reach production whatsoever!
16
+
Part of the development lifecycle includes deploying code and it is here that we can institute automated tooling and tests to assist in the detection of insecurities and potentially prevent vulnerabilities from reaching production whatsoever!
17
17
18
18
This module will cover over some of the automated processes you may see in a CI/CD pipeline and how they work at a high level. Important to note is most of these tools can be run in a number of different ways - meaning they don't _have_ to be run in the CI/CD pipeline and instead can be run locally.
0 commit comments