-
Notifications
You must be signed in to change notification settings - Fork 2
Sécurité
Nous nous sommes orientés vers un serveur "Heroku/Apache" qui est une entreprise proposant des serveurs qui permettent la mise en ligne d'applications web. Heroku utilise ainsi des serveurs Apache pour héberger les applications Web.
Nous avons décidé de nous orienter vers cette solution car il s'agissait d'un des serveurs suggérés dans la documentation Symfony, après avoir pris connaissance de son utilisation, de ses points positifs et négatifs nous nous sommes décidés à l'utiliser.
- Sa simplicité de mise en place pour des projets simples
- Sa sécurité assurée sans modification du projet (HTTPS)
- Son offre gratuite qui permet aux étudiants ou aux petites entreprises de mettre leurs applications Web gratuitement en ligne
- La possibilité de créer une base de données liées à notre projet sans devoir modifier quoi que ce soit dans le projet. Sans pour autant que ceci soit une obligation en effet, Heroku parvient à créer des liaisons entre le site et n'importe quelle base de données (C'est d'ailleurs ce que nous avons fait dans ce projet ,au début de la mise en ligne nous pensions utiliser la base de données Heroku, au final, nous avons décidé de conserver notre base de données sur OVH.)
- Une bonne documentation
- Bonne popularité et ainsi beaucoup de forums sur lesquels trouver des solutions
- La complexité de la mise en ligne pour un projet Symfony (contrairement à d'autres frameworks)
- La mauvaise documentation trouvée en ligne concernant la mise en ligne d'application Symfony
Après avoir comparé les différents points positifs et négatifs nous avons ainsi décidé de nous orienter vers ce serveur Heroku.
La démarche à suivre pour mettre une application en ligne via Heroku est de créer un dépôt git dédié au site en ligne, ce dépôt sera utilisé par Heroku afin d'y récupérer le code à traiter. Pour créer et fournir ce dépôt git, nous avions soit le choix de directement réaliser les différentes commandes git sur ce dépôt, soit nous pouvions directement lier ce dépôt git Heroku au git utilisé pour notre projet. Nous avons décidé d'utiliser la deuxième méthode pour développer notre site plus rapidement.
Une fois les ressources envoyées vers ce dépôt, nous avons ajouté deux buildpacks disponibles sur Heroku :
- Le premier, NodeJs, qui permet l'utilisation du Webpack-Encore et gère ainsi la partie react du site,
- Le second, PHP, qui permet bien évidemment le fonctionnement de tout le reste du projet codé en PHP.
Ces buildpacks nous ont ainsi permis d'utiliser des commandes nécessaires quant au bon fonctionnement du react, telles que "npm run dev" ou "npm install @symfony/webpack-encore --save-dev".
Ensuite, nous avons également dû installer "apache-pack" dans notre projet afin de permettre la bonne liaison des URL entre elles. Pour ce faire, nous avons effectué la commande "composer req symfony/apache-pack", après cette commande un .htaccess est créé, et les URL sont fonctionnelles.
Afin de lier Heroku avec notre projet Symfony, nous avons également dû configurer une "APP_SECRET" dans Heroku ainsi que dans le .env du projet.
Enfin, une fois le déploiement effectué, le site est directement accessible en ligne et ce, en https, sans que nous ayons à modifier quoi que ce soit dans les fichiers de configuration.
Nous nous sommes portés sur le choix d'un serveur Heroku car il assure une certaine sécurité lui-même (en assurant le https), de plus Symfony gère dans son .htaccess beaucoup de paramètres de sécurité.
Utilisant un service en ligne nous n'avons pas dû citer d'ouverture de ports, nous ne pensons donc pas avoir de faille de sécurité à ce niveau.
Heroku permet la création de sous-administrateur dans nos projets. Ainsi, nous avons chacun un compte Heroku sous-administrateur intégré dans le projet Heroku de Baptiste, qui est lui administrateur.
Pour la base de données, nous nous sommes orientés vers une base de données hébergées sur OVH. Le système de backup est organisé de manière automatique, une sauvegarde par jour s'effaçant au bout d'un mois pour permettre la récupération des données en cas de crash de la base de données.
Nous avons deux rôles au sein de notre base de données, l'administrateur, qui est ici le propriétaire de celle-ci, ainsi qu'un sous-administrateur qui est ici Arthur.
Cette base de données n'est évidemment pas accessible de l'extérieur sans les identifiants et les mots de passe pour s'y connecter.
Les mots de passe y sont cryptés afin d'assurer une sécurité légale des utilisateurs.
Voir GDPR : https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX%3A32016R0679
Afin de tester la sécurité de notre site, nous avons décidé d'utiliser le site Dareboost. Ce site nous a ainsi permis de parfois voir des erreurs et de les corriger.
Afin de tester l'accessibilité de notre site, nous avons décider d'utiliser l'extension Visual Studio "Thunder Client", qui permet d'enregistrer des URL et de vérifier que celles-ci soient accessibles plus facilement que de le faire manuellement dans un navigateur de recherche.
- R2 Backlog
- R2 US Perso Arthur Schamroth
- R2 US Perso Arthur Schamroth 2
- R2 US Perso Louis Carlier
- R2 US Perso Baptiste Bemelmans
- R2 US Perso Baptiste Bemelmans 2
- R2 US Perso Nicolas Martou
- R2 US Perso Nicolas Martou 2
- R4 Choix et justification des technologies Front End
- R3/5 Choix et justification des technologies Back End
- R7 Choix et justification de la base de données
- R14/19 Sécurité