nxvl / secure-coding-with-python

Secure Coding in python
GNU General Public License v3.0
73 stars 19 forks source link

Secure Coding with Python.

Description

Welcome to the Secure coding with python course. In this repository you will find a series of branches for each step of the development of a sample marketplace application. In such a development, we will be making security mistakes and introducing vulnerabilities, we will add tests for them and finally fixing them.

The branches will have the following naming scheme for easier navigation: {Chapter number}-{Chapter Name}/{code|test|fix}. I encourage you to follow the chapters in order, but you can also skip to the specific one you wish to review.

For this course we will be using Python3, Flask and PostgreSQL.

Preparing the environment

In order to run the code we will set up a virtual environment using pyenv and pyenv-virtualenv. Please refer to each repo for installation instructions.

We create our environment with:

> pyenv virtualenv 3.7.4 sec-coding-marketplace

and we enable it with:

> pyenv shell sec-coding-marketplace

Proceed to next section

Index

1. Vulnerable Components

2. SQL Injection

3. Weak password storage

4. Broken Authentication

5. Broken Deauthentication

6. Cross-Site Request Forgery (csrf)

7. Cross-Site Scripting (xss)

8. Broken Access Control

9. Sensitive Data Exposure