Déploiement et Sécurisation - jclaerhout/Projet_Web_III_2023 GitHub Wiki

Déploiement

Choix du serveur d'hébergement

Après quelques recherche sur les meilleurs solutions d'hébergement d'application web, la solution qui couvre le mieux nos besoin est le service Vercel.

Pourquoi?

  • Gratuit
  • Facile à mettre en place
  • Se gère avec GitHub

Technique de déploiement

Application

Voici un screenshot de notre dashboard Vercel.
Après avoir créé un compte, il a simplement fallu crée un projet ou l'on à pu déployé notre frontend et notre backend.

image

Voici comment l'ajout de projet se passe :
Il suffit de lier son compte Github à son compte Vercel pour avoir accés à tout nos projet.

Capture d’écran 2023-06-07 162258

Ensuite il faut simplement nommé le projet et donné le directory racine.
La branche 'main' est déployé par défaut mais il est possible de changer cela dans les paramètres du projet.

image

L'on a effectué ces opérations pour le frontend et pour le backend et notre projet été en ligne!
Le code est déployé/mis à jour lorsqu'il y a un nouveau commit sur la branche déployée.

Base de donnée

Au départ nous utilisions une base de données MariaDb, mais nous nous sommes vite rendu compte que ça nous poserait problème pour le déploiement. En effet, les plus connu propose souvent des hébergement pour PostgreSQL, Mysql et d'autre mais rarement MariaDb. Nous avons donc décidé de passer sur une base de données Mysql.

Ensuite nous avons essayé AWS mais sans succès et nous somme tombé sur le service de google 'Google cloud SQL'.
Il a fallu créer notre instance de base de données Mysql.

Voici l'aperçu général de notre instance :

image

Dans l'onglet 'base de donnés', nous avons créer notre base de données 'dev3'. Vous pouvez retrouver le script SQL de création de notre base de données ici

Capture d'écran 2023-06-07 163729

Ensuite, nous avons créer des utilisateurs.

image

Et pour finir, nous avons suivi les étapes de connexion à la db grace à l'IP publique.

image

A ce stade, notre application et notre base de données sont bien hébergées et opérationnelles ici : Photo Pro

Sécurisation

Analyse de la sécurité

Biens à protéger

  • Le code
  • la DB
  • et le serveur

Risques

  • Code

Erreurs de programmation
Données privés visibles
Accès aux pages privées
Attaque par force brute

  • Base de données

Attaque par injection
Fuite de données
Suppression de données

  • Serveur

Déni de service

Contre-mesures

Le code de chacun est vérifié par tous les étudiants du groupe afin d'éviter les erreurs. De plus, nous avons utilisé ESLint afin d'avoir des notifications d'erreurs ou dangers.
La base de données est hébergée sur Google cloud, un service d'hébergement mondial et fiable. Le service proposé assure un protection physique, des pare-feu et des mesures contre le DDOS. Pour la connexion il propose un service de connexion à doubles facteurs. Le serveur choisit est Vercel, un site fiable et sécurisé qui prend en charge les certificats SSL/TLS. Le site propose aussi une identification à deux facteurs.

Suivi de la sécurisation

Vercel propose une page de monitoring pour notre serveur.

Bilan de la sécurisation

En utilisant Vercel et Google cloud SQL, notre application est sécurisée car ce sont deux service qui mettent fort l'accent la dessus.

Sécurité chez Vercel : Security-Vercel
Sécurité chez Google cloud SQL : Security-Google-cloud-sql