Baptiste H.

FULL STACK DEVELOPER

535 dollar
Freelancer
8 ans
Mulhouse, FRANCE

Mon expérience

Voir plus

FreelanceAugust 2017 - Présent

Développeur et Testeur en Sécurité.
I. Développement WordPress et personnalisation du plugin de réseau social BuddyPress en utilisant des "hooks" d’action et de filtre.
-
Création d’une fonctionnalité pour chercher des personnes dans un rayon
de kilomètres en utilisant la base de données GeoNames pour le
géocodage auto-hébergé.
- Chat webcam WebRTC avec les "shims" adapter.js et fullscreen.js, en utilisant Node.js et WebSocket pour le signalement.
- Configuration email avec Postfix, Dovecot, SpamAssassin, Procmail et Roundcube.
- Configuration HTTPS en utilisant le certificat Let’s Encrypt avec un cronjob de renouvellement automatique.

II. Tests de sécurité en suivant les vulnérabilités d’applications web décrites par le Open Web Application Security Project (OWASP).  

Mots-clés: HTML, CSS, JavaScript, PHP, MySQL, WordPress, BuddyPress, Node.js, WebRTC,
WebSocket, GeoNames, responsive web design, amélioration progressive, sécurité web,
confidentialité.

Références: plusieurs rapports de vulnérabilités sur des plateformes de bug bounty comme Open Bug Bounty et Bounty Factory.
Voir plus

Tschach SolutionsMarch 2016 - August 2017

Développeur Web.
I. Développement web sur le système de gestion de contenu WordPress.
- Création de shortcodes (configurable via paramètres) et pages de menu d'administration.
Utilisation
de l'objet PHP wpdb de WordPress pour accéder à la base de données et
des "hooks" comme l'action wp_ajax pour gérer les requêtes AJAX.
-
Des boutons de contact et boîtes de contact ont été créés en utilisant
la programmation orientée objet avec héritage de classe, pour afficher
des informations sur l’auteur d’un article ou d’un contact personnalisé.
-
Développement d’un outil pour créer, lire, actualiser et supprimer
(CRUD) des questions qui seront envoyées à des clients par email. Un
token aléatoire et unique est généré pour répondre aux questions.
L’outil limite le nombre de questions et réponses affichées sur une page
web, en utilisant une pagination (début, précédent, suivant, fin) avec
un numéro de page et un compteur de pages.
- Découverte et prévention
de vulnérabilités de sécurité web comme l'injection SQL, les failles
XSS, CSRF, clickjacking et le contrôle d’accès.
- Initiative
d'améliorer la confidentialité en supprimant les requêtes HTTP tierces
comme Google Fonts et création de boutons de médias sociaux
auto-hébergés.

Mots-clés : HTML, CSS, JavaScript, PHP, MySQL, WordPress, responsive web design, amélioration progressive, sécurité web, confidentialité.
Voir plus

Alsace NatureJuly 2015 - September 2015

Développeur.
- Travail bénévole pour une association de protection de
l'environnement, réalisé dans le cadre de la licence professionnelle
développeur informatique, à distance durant mon temps libre.
- Le
projet avait pour but la mise à jour d'une application web
cartographique de recensement des zones humides et remblais en Alsace.
L'application utilisait l'API JavaScript Google Maps version 2 mais
n'était plus fonctionnelle après le passage en version 3.
- Assurer
la compatibilité de l'application avec la nouvelle version de l'API
Google Maps, de créer une galerie d'images permettant d'afficher des
photos à partir de miniatures, au survol de la souris et de rendre
l'application compatible mobile en utilisant le responsive web design
(propriétés CSS3 media queries avec la balise HTML meta viewport).
L’application peut être configurée pour utiliser OpenStreetMap à la
place de Google Maps.
- Proposition d'amélioration de la sécurité de l'application web.
-
Remplacement   des   fonctions  PHP obsolètes   (mysql_
*)   par  les 
nouvelles  (mysqli_
*), permettant l'accès à la base de données en
utilisant des requêtes préparées (prepared statements).
- Correction
de différentes failles d'injection SQL, failles XSS et de contrôle
d’accès (un utilisateur non autorisé pouvait supprimer des données en
utilisant des requêtes HTTP non protégées par une identification). Des
failles de sécurité CSRF ont été corrigées en utilisant un token
d'authenticité et le HTTPS a été mis en place pour éviter les attaques
de type man-in-the-middle.
- Stockage des mots de passe avec la fonction PHP password_hash générant un hash Bcrypt,
correspondant à un mot de passe hashé avec "salage", qui est plus sécurisé que MD5.
-
Modification de la fonction "mot de passe oublié" qui envoyait
initialement le mot de passe en clair à l'adresse mail de l'utilisateur.
Désormais, un nouveau mot de passe aléatoire et temporaire est créé et
stocké dans une session PHP (identifiée par un cookie sur le navigateur
web) avant d'être envoyé par mail (Postfix). Lorsqu'un utilisateur se
connecte à l'application avec le mot de passe temporaire, il doit créer
un nouveau mot de passe, en indiquant son mot de passe actuel (évite la
modification du mot de passe et de l'adresse mail dans le cas où une
personne non autorisée accède à la session).

Mots-clés: HTML, CSS, JavaScript, PHP, MySQL, API Google Maps, OpenStreetMap, responsive
web design, sécurité web.
Voir plus

JnesisOctober 2014 - September 2015

Développeur Web.
- Réalisation de différentes missions de développement web pour des clients en France et à l'étranger.
- Utilisation de la méthode agile Scrum avec les outils JIRA et Confluence.
- Travail sous Linux (Xubuntu) et en équipe avec le logiciel de gestion de versions Git.
-
Intégration web (vidéo en arrière-plan, sticky footer, sprite CSS) afin
de personnaliser la plateforme sociale d'entreprise eXo Platform.
- Création d'une application utilisant le framework JavaScript Ext JS et l'architecture MVC (modèle-vue-contrôleur).
- Maintenance d'un site WordPress rendu inaccessible à partir d'une faille de sécurité dans un plugin.
- Codage d'un mail en HTML/CSS pour la communication de l'entreprise.
-
Mise à jour du site web de l'entreprise en respectant les principes du
responsive web design et de l'amélioration progressive (initiative afin
d'avoir un site utilisable sans JavaScript).
- Programmation HTML,
CSS et JavaScript pure ainsi qu'avec les librairies jQuery et Bootstrap
depuis un CDN, avec local fallback.
- Utilisation de la template "HTML5 Boilerplate" avec les bibliothèques "Modernizr" et "Normalize.css".
- Sélection automatique de la version française ou anglaise du site en fonction de la langue du navigateur, avec PHP.
- Utilisation de la fonction URL rewriting du serveur web Apache pour la sélection manuelle de la langue.

Mots-clés : HTML, CSS, JavaScript, PHP, MySQL, PostgreSQL, WordPress, responsive web design, amélioration progressive.
Voir plus

Novartis PharmaJuly 2012 - August 2012

Développeur.
- Création d'une macro Excel pour copier des informations d'une feuille de calcul Excel à une autre.
-
Au sein du département de bioinformatique, ce travail a permis de
fusionner des données de cellules CHO, elles-mêmes collectées depuis
diverses machines de laboratoire.
- Utilisation du langage de programmation Visual Basic (VBA) et pratique de la langue anglaise.

Mots-clés : Visual Basic, macro Excel.
Voir plus

CRDP de StrasbourgJanuary 2012 - July 2012

Développeur.
- Créer des applications web permettant l'apprentissage de la langue allemande aux enfants, de manière ludique.
-
Créer une application graphique 2D pour relier des points entre eux,
correspondant à des mots français qu'il faut relier à leur traduction
allemande par exemple. Il est possible d'annuler et répéter les tracés.
L'application permet de créer, modifier et supprimer des exercices. La
conception de l'application était libre mais devait être validée par le
responsable informatique.
- Autoformation sur les nouveautés du HTML5 ainsi que la sécurité web.
- Utilisation de l'élément HTML5 canvas et du langage de programmation JavaScript.
- Travail sous environnement LAMP avec Linux (Debian), Apache, MySQL et PHP.
-
Utilisation de PDO (PHP Data Objects) pour l'accès à la base de
données. Données sérialisées en JSON et envoyées/reçues via AJAX. Mise à
jour de la page HTML avec les APIs du DOM (Document Object Model).
Positionnement CSS, prévention de failles XSS et injection SQL.

Mots-clés: HTML, CSS, JavaScript, PHP, MySQL, HTML5 canvas, sécurité web.
Voir plus

Emerson Process ManagementMay 2011 - July 2011

Développeur bases de données (Stagiaire).
- Création d'une base de données MySQL à partir de fichiers Excel de
l'entreprise afin de faciliter la recherche d'informations par les
employés.
- Utilisation de scripts SQL et batch ainsi que des applications XAMPP et phpMyAdmin.

Mots-clés: MySQL, Excel.

Mes compétences

WordPress, Windows, WebRTC, VPN, VNC, Visual Basic, VBA, UNIX, SSH, SQL, Shell Scripting, SFTP, Security testing, SDL, Samba, Responsive Design, Qt, Python, PostgreSQL, Postfix, PHP, Perl, Penetration testing, OpenGL, Node.js, MySQL, MS Excel, MongoDB, MariaDB, Linux, Libre Office, Jira, JavaScript, IPTables, HTTPS, HTTP, HTML, GNU, Gimp, FTP, CSS, C/C++, API, Apache, AJAX, Agile Scrum