• Aucun résultat trouvé

Rapport de stage. VENET Maël. 18 / 01 / 2021 au 05 / 03 / Tuteur de stage : Benjamin Boidard. Enseignant référant : Paul LAURENT

N/A
N/A
Protected

Academic year: 2022

Partager "Rapport de stage. VENET Maël. 18 / 01 / 2021 au 05 / 03 / Tuteur de stage : Benjamin Boidard. Enseignant référant : Paul LAURENT"

Copied!
12
0
0

Texte intégral

(1)

1

Rapport de stage

VENET Maël

18 / 01 / 2021 au 05 / 03 / 2021

Tuteur de stage : Benjamin Boidard Enseignant référant : Paul LAURENT

Etablissement : Lycée Joseph-Marie Carriat – BTS SIO 1ère année Entreprise d’accueil : Delya à Saint-Denis-lès-Bourg

(2)

2

Sommaire

Table des matières

Rapport de stage... 1

Sommaire ... 2

Introduction ... 4

Les différentes missions ... 5

Retour d’expérience ... 12

Remerciements ... 3

(3)

3

Remerciements

Je remercie l’association Delya pour le stage, Benjamin Boidard mon maitre de stage pour le suivi, l’aide et les projets apportés tout au long du stage ainsi que l’équipe de Delya pour l’aide et pour la bienveillance.

(4)

4

Introduction

Lors de notre deuxième année de BTS SIO nous devons effectuer un stage en entreprise afin de finir notre formation, d’avoir une meilleure connaissance du milieu professionnelle et de renforcer nos connaissances techniques.

L’association qui m’a accueilli lors de mon stage se nomme « Delya » située à Saint Denis les Bourg au 120 rue des écoles au seins du Centre social Pôle Pyramide.

Cette association propose des hébergements web gratuit aux autres associations, entreprises, étudiants … et est composée de 4 personnes chacun gérant une ou plusieurs parties du site.

L’association gère actuellement 157 hébergements actif pour 404 hébergements totaux et à pour le moment 510 utilisateurs inscrits.

(5)

5

Les différentes missions

Lors de mon stage j’ai été chargé de plusieurs missions :

La première qui était aussi l’objet de mon stage était de passer tout le mysqli en pdo :

Le problème avec le mysqli ici, et qu’il n’avait pas été mis à jour depuis la création du site donc le code était vieux et l’emploi du mysqli n’était pas vraiment justifié car les requêtes effectuées sont très simples.

(Ci-dessous une capture du code utilisant mysqli)

Le passage en pdo va donc permettre de refaire une jeunesse au code et de mieux sécuriser les formulaires et le site en général grâce notamment au « bindParam » du pdo qui permet d’éviter la plupart des injections sql.

(Ci-dessous une capture du code utilisant le pdo)

Une autre mission qui m’a été donnée était de rajouter sur le panneau d’administration des hébergements permettant de réactiver, suspendre et supprimer tous les hébergements car auparavant ses actions n’étaient pas disponibles et devaient être réalisées à la main.

(Ci-dessous une capture du panneau admin)

(6)

6 Par la suite il m’a été aussi demandé de créer une page pour la gestion des admins, cette page a pour simple but de voir qu’elle compte possède actuellement le grade d’administrateur et de permettre de les suspendre s’ils ne sont plus considérés comme admin et créer des comptes administrateurs.

(Ci-dessous une capture du panel admin)

Il m’a été demandé ensuite de créer un système de « ban IP » et de gestion des IP, ce système intervient lors de la connexion aux différentes pages du site, il permet d’éviter les attaques de type

« brute force » et ban l’IP de la machine se connectant au bout de x tentatives.

Un travail qui m’a été demandé en même temps que la partie sur le ban IP est la sécurisation des formulaires contre les injections sql et la réalisation d’un système pour afficher / cacher les mots de passe d’accès aux hébergements présent sur le panel client.

Dans un premier le temps le passage du mysqli vers le pdo a permis de sécuriser les requêtes vers la base de données mais ce n’était pas suffisant car des injections sql étaient toujours possible, pour empêcher ses injections la sécurisation, c’est fait grâce à des regex empêchant la saisie de certains caractères et des caractères spéciaux sur les champs de saisie.

Pour le système d’affichage des mots de passe du côté clients, une fonction en javascript m’a permis de régler le problème, cette fonction agit sur deux choses, la première sur le type du label qui passe de l’état « password » à « text » et sur une icône en forme d’œil.

(Ci-dessous une capture de l’affichage)

(7)

7 Un autre travail qui m’a été demandé à été le passage en dynamique des nodes et des API de mise en ligne et de notifications.

(Suppression des fichiers 1.add etc …)

En effet l’attribution des hébergements sur les nodes se faisait à la main depuis la base de données, j’ai donc créé une page qui permet d’attribuer un node à un hébergement lors de la mise en ligne de celui-ci et qui fait appel à l’API de cloudflare afin de créer l’hébergement.

De plus il m’a été demandé d’ajouter des notifications sur la plateforme admin lors de la réception de tickets support, la demande d’hébergement etc …, en utilisant l’API curl de zulip.

Un autre travail qui m’a été demandé a été la création d’une page pour l’envoi de mails, en effet tout l’envoie des mails se faisait à la main et cela posait des problèmes lorsqu’il fallait en envoyer plus de 100 à la main pour prévenir qu’il fallait renouveler les hébergements ou pour prévenir de tous autres problèmes.

J’ai donc un premier temps reprit tout le système d’envoi de mail existant et l’est regroupé dans une seule est même fonction puis j’ai créé une page permettant l’envoi de mails avec différents types de destinataires et créé tout le système d’envoi de mails.

Le système d’envoi de mails est très simple d’utilisation, il s’agit d’une fonction à appeler mais qui nécessite différents paramètres en fonction de ce que l’on veut faire, par exemple lorsque l’on crée un hébergement un email est envoyé automatiquement à la personne pour lui indiquer que son hébergement est en ligne, cet envoi d’email est donc statique car il restera le même et ne changera jamais à l’inverse les destinataires, le sujet ou le contenu de l’envoi d’emails fait depuis la page d’administration change à chaque fois, il a donc fallu prévoir tous les cas possibles et optimiser de façon à ce que cet envoi soit le plus simple possible.

(8)

8 (Ci-dessous une capture de l’envoie d’email)

(Ci-dessous une capture de l’envoie d’email avec le menu déroulant)

Un autre travail qui m’a été demandé a été de créer une barre de recherche pour trouver plus facilement certains hébergements, utilisateurs … Un système d’affichage des hébergements, utilisateurs sur plusieurs pages était déjà présent ce qui a facilité l’intégration de la barre de recherche.

Il m’a donc juste suffi de créer une petite barre de recherche, de récupérer le contenu de celle-ci, d’ajuster les requêtes vers la base de données pour récupérer uniquement les enregistrements voulus et de réafficher la page avec les bons résultats.

(9)

9 La dernière mission qui m’a été confiée a été de réalisé un système multi-langues pour le site, en effet le site ayant essentiellement des clients français une traduction anglaise ou dans d’autres langues n’était pas nécessaire mais avec le temps le besoin s’est fait ressentir.

Le système de langue est très simple d’utilisation, en effet il suffit de cliquer sur le drapeau de la langue actuelle, initialisé de base avec le drapeau français comme la clientèle est majoritairement française, pour afficher un menu avec toutes les langues disponibles, pour le moment il n’existe que deux possibilités mais on peut rajouter autant de langues que l’on veut.

(Ci-dessous une capture d’écran du menu de langue)

Côté programmation c’est un petit peu plus compliqué, en effet, j’avais d’abord pensé faire passer la langue choisie par l’url, cela marchait très bien mais posait des soucis car des services faisait aussi appel à l’url pour passer des informations et ce n’était pas très esthétique.

J’ai donc fini par utiliser une variable session qui est utilisée pour changer la langue, le système en lui-même utilise plusieurs éléments pour marcher :

- Un dossier contenant plusieurs fichiers, ses fichiers contiennent toutes les traductions pour chaque page et langues, chaque fichier est chargé en fonction de la langue choisie et de la page actuelle.

- Un script javascript qui permet d’appeler un script PHP en lui envoyant la langue choisie, change le drapeau en fonction de la langue choisit et rafraichit la page actuelle afin de charger les nouvelles traductions et d’afficher les changements.

- Un script PHP qui permet de changer la variable session en fonction de ce qu’il a reçu.

Pour ce qui est de l’affichage, les dossiers contenant les traductions sont en faites des tableaux clés

=> valeur, il m’a donc suffi de garder les mêmes clés pour toutes les pages et de changer la valeur de celle-ci en fonction de la langue choisit et d’appeler les clés à la place du texte original.

(10)

10 Une mission qui m’a été confiée en parallèle à toute a été la création d’un script en Bash permettant de supprimer les enregistrements DNS actifs qui ne sont pas présents dans la base de données.

(Ci-dessous le script)

(11)

11 Malheureusement je n’ai pas eu le temps de finir complétement le script, toute la partie de récupération des données marche parfaitement mais la partie traitement des données à un problème que je n’ai pas eu le temps de réglé avant la fin de mon stage.

(12)

12

Retour d’expérience

Mon retour d’expérience sur le stage est extrêmement bon sur l’ensemble. La majorité du travail demandé est arrivé à terme.

La totalité du travail rendu est aujourd’hui en ligne.

Références

Documents relatifs

Puis la configuration de base reste à appliquer, pour ceci il faut aller dans poste de travail affichage sélectionné détails puis dans l'onglet outil sélectionner option des

[r]

[r]

Nous avons bien reçu votre mél et vous en remercions.. Nous souhaitons

Saucisse de Toulouse Poisson pané frais Lentilles mijotées bio Fromage blanc sucré Compote de pommes allégée

Lorsque vous avez terminé, cliquez sur le bouton « Envoyer » (souvent en bas à droite de votre fenêtre) pour envoyer le mail.. Ecrivez l’adresse de votre destinataire ici

Ce stage doit être pour toi à la fois un moyen de vivre une expérience de travail adulte et un moyen de connaître la vie économique et sociale d'une entreprise.. Organise ton

Une fois la source de l'image définie et les paramètres saisis, cliquez sur le bouton enregistrer pour ajouter votre image au template de mail. L'image apparaîtra