Category

Technique

Category

Mis à jour : 23 Déc 2020

Cet article ne remplace pas de bonnes connaissances en PHP, mais peut vous donner de réels bons conseils pour booster votre sécurité.
Il n’y aura ici rien à copier/coller directement dans vos fichiers PHP. Cependant, nous croyons que ces conseils et bonnes pratiques vous apporteront des bénéfices à long terme, en comprenant et en appliquant les différents points en fonction de vos besoins et de votre contexte.

Cet article est le deuxième de notre série dédiée à la sécurité pour PHP. Le premier article “Protéger votre site : Bonnes pratiques de sécurité pour PHP #1” vous donne des indications pour la configuration de PHP, les mises à jour, l’organisation du code ainsi que le filtrage/échappement des données.

Nous allons à présent examiner les attaques les plus courantes, ainsi que les moyens de s’en défendre.

Mis à jour 1. Déc 2020 PHP reste le langage de programmation côté serveur le plus populaire : il est utilisé par presque 80% des sites (source). Ce langage continue à être développée, et PHP 8 a été publié la semaine dernière ! Cette version apporte de nouvelles fonctionnalités et devrait renforcer la sécurité. Cependant, la sécurité de PHP se construit dès ses fonctionnalités centrales ‘historiques’. L’article qui suit ne remplace pas de bonnes connaissances en PHP,…

Qu’est-ce que 2FA

2FA signifie Two Factor Authentication (authentification à deux facteurs). Il s’agit d’un moyen permettant de renforcer un processus d’authentification.
Un exemple de ce type d’authentification se trouve sur de nombreux sites de banques, sur les fonctionnalités critiques telles que la réalisation de virements bancaires. Suivant votre banque, celle-ci peut vous envoyer un code via SMS, que vous devez recopier sur le site web afin de confirmer le virement.

Le second facteur utilisé peut être un téléphone, un objet physique en votre possession, une caractéristique physique (biométrie) ou un secret que vous seul connaissez.

Un process 2FA comprend quelques inconvénients : il rend le processus d’authentification plus complexe, et le second facteur doit impérativement être “disponible”, ce qui peut constituer un problème avec les téléphones mobiles. Batterie déchargée, mauvaise couverture réseau ou tout autre problème peuvent empêcher le processus de fonctionner correctement.

La sécurité peut impliquer de lourds investissements en termes de développement web.
Mais certains petits ajustements peuvent aussi vous permettre une avancée significative en matière de sécurité. Ces modifications sont minimes en termes de code et de configuration, mais elles requièrent une bonne analyse et une validation avant d’être implémentées. Il s’agit des headers HTTP.

HTTPS fait de plus en plus parler de lui, notamment depuis la faille Heartbleed largement médiatisée en 2014.
Il fût un temps où HTTPS était réservé aux transactions très sensibles, comme les transactions bancaires.

On considère aujourd’hui qu’HTTPS est nécessaire dès lors qu’un utilisateur est authentifié sur un site internet, ce afin de protéger sa session web et ses identifiants de connexion.

Cette faille est classée n°10 sur l’OWASP Top 10, c’est donc la dernière du classement. Ce n’est pas celle jugée comme étant la plus importante par l’OWASP, mais ce n’est pas pour autant qu’il faut l’ignorer, bien au contraire.
Ce type de vulnérabilité permet en effet d’effectuer des attaques de type phishing avec plus d’efficacité. Elle permet aussi d’accéder à des ressources non autorisées.

Dans la continuité de notre série dédiée à la compréhension des vulnérabilités web, ce 6ème épisode nous parle d’exposition de données sensibles.
Comme pour les autres articles de cette série, nous ne plongerons pas des les détails techniques (il faudrait y consacrer un nombre conséquent de pages), nous ne parlerons donc pas de Cryptographie.
Ce type de vulnérabilité est classé au sixième rang de l’OWASP Top 10 2013. Ces vulnérabilités sont assez difficiles à exploiter par les pirates; mais l’impact est tellement sévère qu’il est très important de correctement les comprendre et de faire des choix d’architecture appropriés.