Crypter son fichier de configuration

Crypter son fichier de configuration web

Malgré certaines précautions, un pirate peut pénétrer votre site et la première chose à faire sera de chercher à connaître les login et mot de passe de votre base MySQL pour prendre le contrôle. Pour cela, il faut penser à crypter son fichier de configuration web.

On va donc crypter le fichier de configuration pour le rendre illisible.

Qu’est ce qu’un fichier de configuration web ?

Le fichier de configuration est un fichier qui se trouve dans chaque application ou site Web qui se respecte et qui est développé dans les règles de l’art.

En effet, le fichier de configuration définit des réglages (affichage, langue, accès au serveur ftp, accès à la base de données, …).

Prenons le cas de WordPress, chaque site web WordPress possède donc un fichier de configuration nommé wp-config et qui se trouve à la racine de l’hébergement.

voilà ce qu’on peut trouver dans le fichier de configuration d’un site WordPress :

/** The name of the database for WordPress */
define( 'DB_NAME', 'mydb' );

/** MySQL database username */
define( 'DB_USER', 'myusername' );

/** MySQL database password */
define( 'DB_PASSWORD', 'mypassword' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Il est donc très clair qu’une personne qui mette la main sur ce fichier, va pouvoir rapidement avoir les accès à la base de données …

Crypter son fichier de configuration web

Nous allons donc ajouter une barrière au pirate qui met la main sur le fichier de configuration en cryptant ces données sensibles.

Le serveur web pourra lire ces informations facilement, mais elles ne seront pas lisibles directement par un œil humain.

Voici le lien vers un site qui va vous permettre de crypter votre fichier. Il en existe d’autre, il suffit de faire une recherche sur Google.

Par exemple, mon fichier config.php contient ceci:

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'username';
$db['default']['password'] = '';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Je copie donc ce code dans le service du site d’obfuscation et je laisse les valeurs par défaut des paramètres. Je remplace dans mon fichier Config donc la partie du code qui commence par eval(xxxx entre les balises <? et ?>, ce qui donne:

<?php
eval(gzinflate(base64_decode(rawurldecode('XZa1zsaADUUfp60yhElVhzAzZ6m%2BMDM%2Fff%2B5Xi1LvvY9ssvrN%2Fwz%2B%2B0lgf23KPO5KP9Zf%2BeUz%2BOylfv%2Bf6l%2FlOodDvsZrd1LNhG1MOHYZdYnOXWrCfOeKz6sgMyhOsKS1sNHf0fRN4x8YenwuUO0%2Fm6wKNkrt79on%2FIJmx%2FSWYbaXGcOs44mc7PLlG0bJCLB5oaEKoQaKBueBX48iqKq9i0HQDwc2UwEvZGacnKWLGEVT%2Fp8xYUaKMmxvey0ztfuIBzp6oiZqvGOIzhi0Z1SYOZN0HAmgvsAyzcQnJRvRd1GqQxHQqm%2BLKu6UemFvCcdX2lZipqAVcaKKpPnryfz0oIZOae0hguuW%2FTjRXs%2FfJosJu0gAO3jnxzXiO2EFUH8aXyDr0a59pl04qqR%2BXZY5huoTao864ywyUXlaCx3zOKgIVB6ZXBdFqapvRq0Mnh%2Fo8OC3RO5va3YNP0GN8BowLR69gZsszaMaWNeRf%2BgyCY0%2Birkza5b9xqpq2ISC2%2BkcSpXsS8K%2FqcIFLb6ClRHHSBesGt0rJEuSKDlNabGeipSPFofC8GTMVwAN2NdBSN3saPDl5iR%2FjVZYmNhyLkWVvJDG5irodbXDAjVGfDjjR1WTpJOEefKrLzFbg8kANbVNRg0A6b0j3CuJDiSt1B40qsRgowsuoP2uVueex5BnyuWHg3KSJ2RqUMQoTPMhp1MVvztbTrgNA54S2ReqgsEuk3n%2FSrGz4WJ4BwvvJGzlnO2qjhXJGjhy%2FjXFu%2BVfC6mW2kmh47Ac2qmu1tOg2MI29WMWxkq4lvF%2B7P9VX7WuqqhRdg9lk4mz2vN%2FsglR56gKMafPUHzxp7F6V7MDoCv%2BP7Z9h6QPKmQBUXOsXSVtzs1tG3Fwx9p8U4LCX81xYk%2BJ6rBC8lMKJNkSq%2BzTNJ3KuICgaeV8%2Bva%2Fu7A4H68VexiFTxuldKzWEieqZ1xAbwWQoUom9ISZkbaJZ4WSOSJcromgNUoQ1a2rSI%2BwR5vh%2BwJVPNE4%2BbPPPIFgw%2B1sAeil0KaVYGG49eca1I1M8466M52k1GT0tUzZjyIiYgPtTTutkpSesTYGdeXGAd3Oe8RNRbZUySn0VagbRJSFulxbqLZE%2Bbxc3WpOOiWFNLTP7ZZy0JokIG3gp9vVJkiq00SyFK59SVcmlqMs0FHRDdA1OKP4iX%2F7JnthdHqWf9k6iCXX036jtiYfMFJp3CdtwSKqFCG24dwb2sKT%2BKo%2BMjnsjjn1S3TuIP0Ye4tVz%2Fy8SZWHcrm%2FYlxfukBlxXZZ3gFM1Ii1p%2BijP8NLM7IjJR1waIOEY7pOgnA1Z%2FfgBgXM1GyP7a6AjNgR0ilPUH3ecTteGlPazCdbmmLkLEINRfUo2gG7AoAOnOv43J1v3RDKhznqKhMbcLdT%2BVopUH9iC59g6Bel1km7oCEqQyeUpcgQZINj%2Byv9vSoFRLWiMw5PoQqhORQZggkPCL9T7TMSMKSkJOPmJebUZpJ6U0Lwfiwsfimm1pVpyyu7C7fiCZRAhwgMxiLyDbB%2BhcnOvqpCpZ57GOqtJpYpvNq9VDB999GcCuaUF3JvEPAroj4jWKbmbHK2gcDxFOMKjdq0tAfgOC4mphYmFRSLImkvzWioJyXIZqxIfC6SdlaDxO1zoK7BBacfjs83pNSZXTeo094e2Ot17E0J%2FcdOMN2D6k1FPmQwBhJtV0p7CGb0OWCJYo3gDmmithFkPYYsZpAQqHDGvCEYvs9QT2SOehNFx29jcmjyb3aNvjRJPtWV1rOi%2FIIULQK19GAE1TS6mhKKMDe2OUHVzZG%2F5wO6VoDuLWgzxclZ5LaFoziLUQ4Rf6KtvkbgAyevsqtnUp6vD2joGY641ynYKa1xw6UG3QzUTGBVMJYG%2BXqeP6OhzaC%2Flg4a9MagNorRooilZLDaSA5s%2FM63xGvJ1xj6MNA5wS0qKl1Wv%2Fp4Xhc4it%2FnSdqVFFSxzq05a15r4D4ax8BbCVdKsK9Cwtbw9LtHW8iyD3FbMhzBeBBvOryIWGjBuqH6%2Fs2DioxycpK487j1DFROzOFLvkhz8c%2B%2FWgI77x5oj5rNokg4%2FYME%2Fh9UB%2BdzIFfYPC%2FsZ9tIB2odI0Habh92Q%2FT0N4M0Hf56opBwLAvAFq0I3z8wtDTyubhsPpuZv5oF4v0NvcdgMW1rpvZW78oUu5JeJR8LEV7xtJNzF8EX%2BggLYrj4Ne9P3pe5P0XdDeN2dnGUdywyib2tDbp5v4W1jSJ7Yo%2FSDZdMlo6dATfUOKlXBLI6UPEUsqBb2l5RPLz5veGBG22VomUYKvro8v%2BffShN1HisTjIT%2BTYJ2BZK5EEXBP13thNHiJ%2FAZ7Pi6%2FYED48GBmjdGHUb%2FKLeGjZJhaUqW%2FGZqLTZ2NgmYFqHVagHMqAbjsrFJZRkS8EiLSOdslo09TaNDylFy8xidPftwHkUyO2P7f3T%2F97IUar3EeUSsmq1haiU1J0B6fLw8IE0L%2FLu0wWng%2F1tVB%2FOHz2XcyWnmleVySgAKBJ12BF37MEmGUANdDsR9m2fIsp1Ggjwa8jzk9bXtM0qAygPf0Iw2lLBbyAsF7fC8D7gqKzP0vle8pXTnvxFoLqz%2B8Ecb%2F5UCRmCs5ddfPTMl4r%2FT%2FKvh1kmZu%2BXryvg4iSPc8WQ16qNJTEysTk1%2B2WbeXJ12XaMeAzwJ2OQZB%2FjKlM5v%2F8419%2F8e%2F%2FAQ%3D%3D'))));
?>

Ainsi, vous pouvez occulter toutes les informations sensibles.

[bctt tweet= »Le #CMS le plus piraté est #WordPress, ce qui représente plus de 90% de toutes les tentatives de piratage. » via= »no »]

N’oubliez pas aussi d’attribuer par FTP les droits 404 à votre fichier config.inc.php (ou équivalent).

Vous pouvez aussi consulter nos articles du blog pour apprendre plus sur la sécurité de vos développements et hébergement.