Aller au contenu

Astuces de sécurité

Cette page est un travail en cours !

Certaines informations présentes sur cette page peuvent être inexactes. Veuillez ne pas considérer ces astuces de sécurité comme définitives ou entièrement fiables.

Votre token est la porte d'entrée de votre bot. Toute personne ayant en leur possession cette clé d'authentification pourra, comme elle le souhaite, contrôler entièrement votre bot et faire des actions potentiellement malveillantes comme effectuer des raids sur plusieurs serveurs Discord (où elle est présente).

Cette page de documentation vous montrera les différentes choses à savoir pour maximiser la sécurité de votre token pour éviter la fuite et l'utilisation malveillante de ce dernier.

Utiliser les variables d'environnement

Un fichier .env situé dans le répertoire racine de votre bot auto-hébergé vous permet de stocker en toute sécurité des informations sensibles telles que le token d'authentification Discord ou d'autres variables présentes dans certains fichiers de votre bot, sans les inclure directement dans le code source, ce qui fera en sorte d'empêcher de fuiter votre token

Voici un example de fichier .env

# Ceci est un example de token
TOKEN_DISCORD=MzI1NzE3NzY4NTIzOTg1Njc4.YH8e3g.ABCdefGhIJKlmnopQRStUvWxYZ1234567890
Ici, nous prenons TOKEN_DISCORD comme variable d'environnement.

Prenons comme example d'utilisation, le fichier src/files/config.example.ts, qui est le fichier de configuration de votre bot iHorizon auto-hébergé :

src/files/config.example.ts
import { ConfigData } from '../../types/configDatad.js';

const config: ConfigData = {

    discord: {

        token: process.env.TOKEN_DISCORD,
        // The Discord Bot Token

        phonePresence: false,
        // If the bot have Phone Bot Activity Presence
Ici, au lieu d'indiquer le token du bot en dur, nous utilisons process.env.DISCORD_TOKEN pour récupérer la valeur stockée dans la variable d'environnement DISCORD_TOKEN.

Utiliser un fichier .gitignore

Si vous prévoyez l'utilisation de services basés sur le système de contrôle de versions git comme GitLab, GitHub ou Codeberg pour publier que ça soit en privé ou en public le code source de votre bot, alors il est judicieux de créer et d'utiliser le fichier .gitignore. Ce fichier dit à git quels fichiers ou dossiers il doit ignorer. Les fichiers ou dossiers (et donc son contenu) ne seront pas donc pas "suivis" ou publiés. Ce fichier est utile par example pour éviter de publier vos node_modules qui sont trop lourds (des centaines de mégaoctets non nécessaires à publier sur votre dépôt) ou votre fichier de variables d'environnement .env

Voici un example de fichier .gitignore qui peut vous servir de base :

.gitignore
# Dépendances du bot
node_modules/

# Variables d'environnement
.env

Dans ce cas là, les dépendances de votre bot auto-hébergé et vos variables d'environnement ne seront pas publiés sur votre dépôt Git. Bien évidemment, vous pouvez modifier ce fichier comme bon vous semble pour exclure d'autres fichiers ou dossiers que je vous jugez important à ignorer pour Git.