Apprenez à sécuriser vos dépendances et à vérifier l'intégrité des packages.
{ "dependencies": { "express": "4.17.1" }, "scripts": { "preinstall": "npm install", "prepare": "husky install" } }
{ "dependencies": { "express": "4.17.1" }, "scripts": { "preinstall": "npm ci && npm audit", "prepare": "husky install" } }
Sécurisez la désérialisation des données non fiables.
// Code vulnérable const user = JSON.parse(userInput); processUser(user);
// Code sécurisé import Joi from 'joi'; const schema = Joi.object({ name: Joi.string().required(), age: Joi.number().integer().min(0).max(120) }); try { const user = JSON.parse(userInput); const { error, value } = schema.validate(user); if (error) throw new Error("Invalid data"); processUser(value); } catch (err) { console.error("Validation failed:", err); }
Sécurisez votre pipeline de déploiement avec des signatures et des vérifications.
name: CI/CD Pipeline on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Dependencies run: npm install - name: Deploy run: | npm run build scp -r ./dist user@192.168.1.100:/var/www
name: CI/CD Pipeline on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Verify dependencies run: | npm ci npm audit - name: Build and sign run: | npm run build gpg --import ${{ secrets.GPG_PRIVATE_KEY }} find dist -type f -print0 | xargs -0 gpg --detach-sign --armor - name: Deploy env: SSH_KEY: ${{ secrets.SERVER_SSH_KEY }} run: | mkdir ~/.ssh && echo "$SSH_KEY" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa rsync -avz -e "ssh -i $SSH_KEY" dist/ user@secure-server:/var/www - name: Verify deployment run: ssh user@secure-server 'gpg --verify /var/www/dist/*'
Sélectionnez les bonnes options pour sécuriser votre pipeline CI/CD.
Voici le pipeline que vous avez construit :