Sécurisez vos sites Internet

Quelques conseils pour limiter les risques

Petit préambule à la sécurité sur le web

Un point important à savoir : Internet n’a jamais été conçu dans le but d’être sécurisé. Au contraire : l’idée était que pendant la guerre froide, les messages envoyés étant toujours interceptés sans arriver à l’interlocuteur choisi, de créer un réseau non sécurisé ou même si le message était intercepté, il arriverait quand même à bon port !

Aucune des idées développées dans cet article ne garantit la sécurité de votre site mais elle permettent de limiter les risques et en cas d’attaque & de pouvoir remettre votre site en ligne rapidement.

Attention, je ne suis pas un expert informatique de la sécurité. Cette article a plus pour ambition de vous donner quelques clés plus ou moins faciles à mettre en place que j’ai acquises durant mes précédentes expériences.

Faites des sauvegardes !

Premier conseil, mais pas des moindres, faites des sauvegardes ! La sauvegarde vous permettra, en cas d’attaque ou d’injection de code dans votre site, de revenir rapidement sur une ancienne version sauvegardée de votre site.

Il y a généralement 2 types de sauvegarde :

  • La sauvegarde de votre hébergement
  • La sauvegarde de votre base de données (en fonction de votre serveur, la base de données peut être incluse avec l’hébergement)

Les hébergeurs proposent tous des solutions de sauvegarde de votre hébergement en gardant généralement :

  • Une sauvegarde datant de la veille
  • Une sauvegarde datant de la semaine précédente
  • Une sauvegarde datant du mois précédents

La sauvegarde régulière de base de données est généralement plus compliquée à mettre en place et nécessite des connaissances en code. Renseignez-vous auprès de votre développeur !

Limiter les accès directs aux fichiers PHP sur votre serveur

Certains de vos fichiers ne doivent pas être accessible en direct par l’URL de votre site et peuvent représenter des failles de sécurité. Le fichier HTaccess (voir ci-dessous) est une première couche de sécurité, mais vous pouvez également en créer une seconde en marquant un simple bout de code au début de vos fichiers PHP.

Dans wordpress :


if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

Dans un site en PHP :


/* check direct access */
if ($_SERVER['REQUEST_METHOD'] == 'GET' && realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME'])) {
    header('HTTP/1.0 403 Forbidden', TRUE, 403);
    die(header('location: /index.php'));
}

Le fichier HTaccess, pierre angulaire de votre sécurité

Le fichier .htaccess se situe à la racine de votre serveur si vous travaillez sur un serveur Apache. Pour ma part, je n’ai jamais travaillé sur un serveur autre que Apache, je ne connais donc aucune solution pour des serveurs non Apache !

Quelques lignes pour limiter les risques de piratage


# protège votre fichier htaccess
<files .htaccess>
order allow,deny
deny from all
</files>

# protege l'accès direct au répertoire de votre serveur
Options -Indexes

<IfModule mod_headers.c>
#Empêche l'affichage de votre site dans des iframes
Header always set X-FRAME-OPTIONS "DENY"

#Protège votre site des attaques de type XSS
Header always set X-XSS-Protection "1; mode=block"

#Limite les attaques utilisant les MIME Types
Header always set X-Content-Type-Options "nosniff"
</IfModule>

Pour information, je ne sais pas non plus exactement ce qu’est une attaque XSS mais si on peut s’en protéger en rajoutant une ligne dans un fichier … autant le faire !

Quelques lignes pour limiter les dégâts en cas de piratage

Dans la plupart des cas, si votre site est hacké, du code va être injecté dans votre site pour afficher par le biais d’Iframe ou de chargement de fichier distant des pubs ou envoyer des mails via votre serveur.

Pour empêcher ces scripts de s’afficher, une solution htaccess existe : Content-Security-Policy. Ce code permet de définir d’où proviennent les ressources disponibles sur votre site pour chaque type de fichier et de ne pas autoriser d’autres ressources à l’affichage.

Là encore, elle limitera les dégâts, mais ne les empêchera pas !


#La ligne ci-dessous va autoriser tous les contenus provenant de votre serveur ainsi que certaines applications Google tel que YouTube ou Analytics.
Header set Content-Security-Policy: "default-src 'self'; script-src 'self' 'unsafe-eval' https://apis.google.com https://www.googletagmanager.com/ https://www.google-analytics.com/; object-src 'none'; style-src 'self' 'unsafe-inline' https://themes.googleusercontent.com https://fonts.googleapis.com/; img-src 'self' https://img.youtube.com/ https://www.google-analytics.com/; media-src 'self'; frame-src 'self' https://www.youtube.com/; font-src 'self' https://themes.googleusercontent.com https://fonts.gstatic.com/; connect-src 'none'"

Le contenu ci-dessus est un exemple, ne pas le copier coller tel quel !

Contact
François Coudreau - Freelance Web

Me contacter

Le premier contact se fera par mail via le formulaire ci-contre. Si vous avez déjà un site existant, n\'hésitez pas à me communiquer l\'URL dans la partie \"Votre projet\". Réponse sous 48h maximum.






> Voir la politique de confidentialité