Browse Source

Merge pull request #907 from 01-edu/issue-forum-security-01-265

forum/security : issue correction
content-update
MSilva95 3 years ago committed by GitHub
parent
commit
38450399db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      subjects/ascii-art/README.md
  2. 2
      subjects/ascii-art/color/README.md
  3. 2
      subjects/ascii-art/fs/README.md
  4. 2
      subjects/ascii-art/justify/README.md
  5. 2
      subjects/ascii-art/output/README.md
  6. 2
      subjects/ascii-art/reverse/README.md
  7. 6
      subjects/forum/README.md
  8. 2
      subjects/forum/advanced-features/README.md
  9. 2
      subjects/forum/audit/README.md
  10. 2
      subjects/forum/image-upload/README.md
  11. 2
      subjects/forum/moderation/README.md
  12. 11
      subjects/forum/security/README.md
  13. 2
      subjects/go-reloaded/README.md
  14. 2
      subjects/groupie-tracker/README.md
  15. 2
      subjects/groupie-tracker/filters/README.md
  16. 2
      subjects/groupie-tracker/geolocalization/README.md
  17. 2
      subjects/lem-in/README.md
  18. 2
      subjects/my-ls-1/README.md
  19. 3
      subjects/net-cat/README.md
  20. 2
      subjects/push-swap/README.md
  21. 2
      subjects/tetris-optimizer/README.md

2
subjects/ascii-art/README.md

@ -33,7 +33,7 @@ $$@@$$$$$$$$``````````@@$$@@$$$$$$
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
- Some **banner** files with a specific graphical template representation using ASCII will be given. The files are formatted in a way that is not necessary to change them.

2
subjects/ascii-art/color/README.md

@ -20,7 +20,7 @@ EX: go run . something --color=<color>
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/ascii-art/fs/README.md

@ -8,7 +8,7 @@ You must follow the same [instructions](../README.md) as in the first subject bu
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
- You can see all about the **banners** [here](../).
- The usage must respect this format `go run . [STRING] [BANNER]`, any other formats must return the following usage message:

2
subjects/ascii-art/justify/README.md

@ -30,7 +30,7 @@ EX: go run . something standard --align=right
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Usage

2
subjects/ascii-art/output/README.md

@ -18,7 +18,7 @@ EX: go run . something standard --output=<fileName.txt>
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code presents a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Usage

2
subjects/ascii-art/reverse/README.md

@ -20,7 +20,7 @@ EX: go run . --reverse=<fileName>
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Usage

6
subjects/forum/README.md

@ -25,7 +25,7 @@ To know more about SQLite you can check the [SQLite page](https://www.sqlite.org
In this segment the client must be able to `register` as a new user on the forum, by inputting their credentials. You also have to create a `login session` to access the forum and be able to add posts and comments.
You should use cookies to allow each user to have only one opened session. Each of this sessions must contain an expiration date. It is up to you to decide how long the cookie stays "alive".
You should use cookies to allow each user to have only one opened session. Each of this sessions must contain an expiration date. It is up to you to decide how long the cookie stays "alive". The use of UUID is a Bonus task.
Instructions for user registration:
@ -33,7 +33,7 @@ Instructions for user registration:
- When the email is already taken return an error response.
- Must ask for username
- Must ask for password
- The password must be encrypted when stored
- The password must be encrypted when stored (this is a Bonus task)
The forum must be able to check if the email provided is present in the database and if all credentials are correct. It will check if the password is the same with the one provided and, if the password is not the same, it will return an error response.
@ -75,7 +75,7 @@ For the forum project you must use Docker. You can read about docker basics in t
- You must handle website errors, HTTP status.
- You must handle all sort of technical errors.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/forum/advanced-features/README.md

@ -25,7 +25,7 @@ We encourage you to add any other additional features that you find relevant.
- The backend must be written in **Go**
- The code must respect the [good practices](../../good-practices/README.md)
- It is recommended that the code should present a **test file**
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/forum/audit/README.md

@ -170,6 +170,8 @@ cc8f5dcf760f <name of the image> "./server" 6 seconds ag
###### +Does the project present a script to build the images and containers? (using a script to simplify the build)
###### +Is the password encrypted in the database?
#### Basic
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)

2
subjects/forum/image-upload/README.md

@ -21,7 +21,7 @@ The max size of the images to load should be 20 mb. If there is an attempt to lo
- The backend must be written in **Go**.
- You must handle website errors.
- The code must respect the [good practices](../../good-practices/README.md)
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/forum/moderation/README.md

@ -39,7 +39,7 @@ You should implement at least 4 types of users :
- You must handle website errors, HTTPS status.
- You must handle all sort of technical errors.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

11
subjects/forum/security/README.md

@ -10,14 +10,19 @@ For this project you must take into account the security of your forum.
- Encrypted connection : for this you will have to generate an SSL certificate, you can think of this like a identity card for your website. You can create your certificates or use "Certificate Authorities"(CA's)
- Clients session cookies should be unique. For instance, the session state is stored on the server and the session should present an unique identifier. This way the client has no direct access to it. Therefore, there is no way for attackers to read or tamper with session state.
- We recommend you to take a look into [cipher suites](https://en.wikipedia.org/wiki/Cipher_suite).
- The implementation of [Rate Limiting](https://en.wikipedia.org/wiki/Rate_limiting) must be present on this project
- You should encrypt :
- Clients passwords
- Clients passwords.
- Database, for this you will have to create a password for your database.
Sessions and cookies were implemented in the [previous project](../README.md) but not under-pressure (tested in an attack environment). So this time you must take this into account.
- Clients session cookies should be unique. For instance, the session state is stored on the server and the session should present an unique identifier. This way the client has no direct access to it. Therefore, there is no way for attackers to read or tamper with session state.
### Hints
- You can take a look at the `openssl` manual.
@ -28,7 +33,7 @@ For this project you must take into account the security of your forum.
- You must handle website errors, HTTPS status.
- You must handle all sort of technical errors.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/go-reloaded/README.md

@ -14,7 +14,7 @@ We advise you to create your own tests for yourself and for when you will correc
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
The tool you are about to build will receive as arguments the name of a file containing a text that needs some modifications (the input) and the name of the file the modified text should be placed in (the output). Next is a list of possible modifications that your program should execute:

2
subjects/groupie-tracker/README.md

@ -26,7 +26,7 @@ Groupie Trackers consists on receiving a given API and manipulate the data conta
- The site and server cannot crash at any time.
- All pages must work correctly and you must take care of any errors.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/groupie-tracker/filters/README.md

@ -26,7 +26,7 @@ You must follow the same [principles](../README.md) as the first subject.
- The backend must be written in **Go**.
- You must handle website errors.
- The code must respect the [good practices](../../good-practices/README.md)
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/groupie-tracker/geolocalization/README.md

@ -15,7 +15,7 @@ You must follow the same [principles](../README.md) as the first subject.
- The backend must be written in **Go**
- You must handle website errors
- The code must respect the [good practices](../../good-practices/README.md)
- It is recommended that the code should present a **test file**
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/lem-in/README.md

@ -94,7 +94,7 @@ Which corresponds to the following representation :
- The coordinates of the rooms will always be `int`.
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

2
subjects/my-ls-1/README.md

@ -21,7 +21,7 @@
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

3
subjects/net-cat/README.md

@ -31,7 +31,8 @@ Your project must work in a similar way that the original NetCat works, in othe
- Your project must have channels or Mutexes
- Maximum 10 connections
- The code must respect the [**good practices**](../good-practices/README.md)
- It is recommended that the code should present a **test file** for the server connection and the client connection
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test) both the server connection and the client.
- You have to be able to handle the errors from server side and client side
### Allowed Packages

2
subjects/push-swap/README.md

@ -136,7 +136,7 @@ $
- Your project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
- The first executable file must be named **checker** and the second **push-swap**.
- You have to be able to handle the errors.

2
subjects/tetris-optimizer/README.md

@ -15,7 +15,7 @@ The program must :
- In case of bad format on the tetrominoes or bad file format it should print `ERROR`
- The project must be written in **Go**.
- The code must respect the [**good practices**](../good-practices/README.md).
- It is recommended that the code should present a **test file**.
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages

Loading…
Cancel
Save