@@ -9,3 +9,7 @@ cascade:
|
|||||||
{{< cards >}}
|
{{< cards >}}
|
||||||
{{< card link="/documentation/securité/cadenas_vert/ssl/" title="SSL : Décryptage du Cadenas Vert" subtitle="Comment fonctionne le HTTPS (SSL/TLS)" icon="banknotes" >}}
|
{{< card link="/documentation/securité/cadenas_vert/ssl/" title="SSL : Décryptage du Cadenas Vert" subtitle="Comment fonctionne le HTTPS (SSL/TLS)" icon="banknotes" >}}
|
||||||
{{< /cards >}}
|
{{< /cards >}}
|
||||||
|
|
||||||
|
{{< cards >}}
|
||||||
|
{{< card link="/documentation/securité/ssl_bumping/ssl_bumping/" title="SSL Bumping" subtitle="Comment analyser le traffic SSL" icon="clever" >}}
|
||||||
|
{{< /cards >}}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 222 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 336 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 304 KiB |
327
content/documentation/securité/ssl_bumping/ssl_bumping.md
Normal file
327
content/documentation/securité/ssl_bumping/ssl_bumping.md
Normal file
@@ -0,0 +1,327 @@
|
|||||||
|
---
|
||||||
|
title: "SSL Bumping : Comment analyser le trafic SSL"
|
||||||
|
date: 2025-06-22T20:00:00+02:00
|
||||||
|
weight: 3
|
||||||
|
cascade:
|
||||||
|
type: docs
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction : Quand le Cadenas Vert Devient Transparent 🔓🔍
|
||||||
|
|
||||||
|
Vous vous souvenez de notre fameux [**cadenas vert**](/documentation/securité/cadenas_vert/ssl/) dont on a parlé dans l'article précédent ? Cette petite icône qui nous rassure, qui nous dit "tout va bien, vos secrets sont en sécurité" ? Eh bien aujourd'hui, on va voir comment certains acteurs arrivent à **regarder à travers** ce cadenas ! 😱
|
||||||
|
|
||||||
|
Mais rassurez-vous, on ne va pas devenir des pirates ! On va explorer une technique légitime (mais controversée) appelée **SSL Bumping** ou **SSL/TLS Interception**. C'est un peu comme avoir des lunettes à rayons X pour voir ce qui se cache derrière le chiffrement HTTPS.
|
||||||
|
|
||||||
|
**Pourquoi c'est important ?** 🤔 Parce que cette technique est utilisée partout : dans les entreprises pour sécuriser leurs réseaux, dans les écoles pour filtrer le contenu, et même parfois... par des acteurs moins bien intentionnés. Comprendre comment ça fonctionne, c'est comprendre à la fois comment se protéger et comment protéger les autres.
|
||||||
|
|
||||||
|
Prêts pour une plongée dans les coulisses du HTTPS ? On va décortiquer ensemble cette technique fascinante, et je vous montrerai même comment la mettre en pratique avec un lab que j'ai préparé : [squid-ssl-bumping-lab](https://github.com/darnodo/squid-ssl-bumping-lab) 🧪
|
||||||
|
|
||||||
|
## Partie 1 : Le SSL Bumping, C'est Quoi au Juste ? 🎭
|
||||||
|
|
||||||
|
### Le Principe : L'Homme du Milieu... Mais Gentil ! 👤
|
||||||
|
|
||||||
|
Imaginez cette scène : vous voulez envoyer une lettre secrète à votre ami(e). Normalement, vous la mettez dans une enveloppe scellée (le chiffrement HTTPS) et hop, direction la boîte aux lettres. Personne ne peut la lire en chemin, n'est-ce pas ?
|
||||||
|
|
||||||
|
Maintenant, imaginez que le facteur (disons, le proxy de votre entreprise) ait besoin de vérifier que vous n'envoyez pas de plans secrets de l'entreprise à la concurrence. Comment fait-il ? Il ne peut pas lire à travers l'enveloppe !
|
||||||
|
|
||||||
|
C'est là qu'intervient le **SSL Bumping** :
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Le proxy va :
|
||||||
|
1. **Intercepter** votre connexion HTTPS
|
||||||
|
2. **Déchiffrer** votre trafic (comme ouvrir l'enveloppe)
|
||||||
|
3. **Analyser** le contenu
|
||||||
|
4. **Re-chiffrer** et transmettre au serveur final
|
||||||
|
|
||||||
|
En gros, au lieu d'avoir **une** connexion sécurisée de bout en bout, vous en avez **deux** : une entre vous et le proxy, une autre entre le proxy et le serveur final. Le proxy peut voir tout ce qui passe !
|
||||||
|
|
||||||
|
> [!NOTE] **Terminologie : SSL Bumping, HTTPS Interception, MITM... Késako ? 🤓**
|
||||||
|
>
|
||||||
|
> Ces termes désignent tous la même chose :
|
||||||
|
> - **SSL Bumping** : Le terme historique utilisé par Squid (un proxy populaire)
|
||||||
|
> - **TLS Interception** : La version moderne (on utilise TLS, pas SSL)
|
||||||
|
> - **HTTPS Inspection** : Le terme "corporate-friendly"
|
||||||
|
> - **MITM (Man-In-The-Middle)** : Le terme technique général
|
||||||
|
>
|
||||||
|
> Dans cet article, j'utiliserai principalement "SSL Bumping" par habitude, mais c'est bien de TLS qu'on parle !
|
||||||
|
|
||||||
|
### Pourquoi Faire Ça ? Les Cas d'Usage Légitimes 🏢
|
||||||
|
|
||||||
|
Avant de crier au scandale, sachez que le SSL Bumping a des utilisations parfaitement légitimes :
|
||||||
|
|
||||||
|
1. **Sécurité d'Entreprise 🛡️**
|
||||||
|
- Détecter les malwares qui se cachent dans le trafic HTTPS
|
||||||
|
- Empêcher les fuites de données sensibles
|
||||||
|
- Bloquer l'accès à des sites malveillants
|
||||||
|
|
||||||
|
2. **Conformité et Contrôle 📋**
|
||||||
|
- Respecter les réglementations (certains secteurs doivent tout archiver)
|
||||||
|
- Filtrer le contenu inapproprié dans les écoles
|
||||||
|
- Optimiser la bande passante en cachant le contenu
|
||||||
|
|
||||||
|
3. **Débogage et Développement 🐛**
|
||||||
|
- Analyser les API de vos applications
|
||||||
|
- Debugger les problèmes de connexion
|
||||||
|
- Tester la sécurité de vos services
|
||||||
|
|
||||||
|
> [!WARNING] **Attention : Avec de Grands Pouvoirs... 🚨**
|
||||||
|
>
|
||||||
|
> Le SSL Bumping est une technique **très puissante** qui peut être utilisée à mauvais escient :
|
||||||
|
> - Espionnage des employés
|
||||||
|
> - Vol d'identifiants et de données personnelles
|
||||||
|
> - Violation de la vie privée
|
||||||
|
>
|
||||||
|
> Son utilisation doit **toujours** être transparente, légale et éthique !
|
||||||
|
|
||||||
|
## Partie 2 : Comment Ça Marche Techniquement ? 🔧⚙️
|
||||||
|
|
||||||
|
Bon, assez de théorie ! Rentrons dans le vif du sujet. Comment un proxy arrive-t-il à se faire passer pour le serveur légitime sans que votre navigateur ne crie au loup ? C'est toute une chorégraphie !
|
||||||
|
|
||||||
|
### Étape 1 : La Fausse Identité 🎭
|
||||||
|
|
||||||
|
Pour que le SSL Bumping fonctionne, le proxy doit pouvoir **créer de faux certificats** à la volée. Comment ? Il devient sa propre Autorité de Certification (CA) !
|
||||||
|
|
||||||
|
Le proxy génère :
|
||||||
|
1. **Sa propre CA** avec une paire de clés (publique/privée)
|
||||||
|
2. **Un faux certificat** pour chaque site que vous visitez
|
||||||
|
3. Ce faux certificat est signé par sa CA "maison"
|
||||||
|
|
||||||
|
### Étape 2 : Le Tour de Passe-Passe 🎩✨
|
||||||
|
|
||||||
|
Voici la danse complète quand vous visitez `https://www.example.com` :
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Le proxy joue un double jeu :
|
||||||
|
- Côté serveur : Il se fait passer pour un client normal
|
||||||
|
- Côté client : Il se fait passer pour le serveur !
|
||||||
|
|
||||||
|
> [!TIP] **Mais Attendez... Mon Navigateur N'est Pas Stupide ! 🤨**
|
||||||
|
>
|
||||||
|
> Exactement ! Normalement, votre navigateur devrait hurler "CERTIFICAT INVALIDE !"
|
||||||
|
> Pour que ça fonctionne, il faut que le certificat de la CA du proxy soit **installé comme CA de confiance** sur votre machine.
|
||||||
|
>
|
||||||
|
> C'est pourquoi :
|
||||||
|
> - Les entreprises installent leur CA sur tous les postes
|
||||||
|
> - Les antivirus vous demandent d'installer leur certificat
|
||||||
|
> - Vous devez faire super attention aux CA que vous installez !
|
||||||
|
|
||||||
|
### Étape 3 : L'Analyse du Trafic 🔍
|
||||||
|
|
||||||
|
Une fois le tunnel établi, le proxy peut voir **tout** :
|
||||||
|
|
||||||
|
- Les URL complètes (pas juste le domaine)
|
||||||
|
- Les données POST (formulaires, mots de passe...)
|
||||||
|
- Les cookies et tokens d'authentification
|
||||||
|
- Le contenu des pages
|
||||||
|
- Les fichiers téléchargés
|
||||||
|
|
||||||
|
Il peut alors :
|
||||||
|
- **Logger** tout pour analyse ultérieure
|
||||||
|
- **Bloquer** certains contenus
|
||||||
|
- **Modifier** les requêtes/réponses (dangereux !)
|
||||||
|
- **Scanner** pour des malwares
|
||||||
|
|
||||||
|
## Partie 3 : Mise en Pratique avec Squid 🦑
|
||||||
|
|
||||||
|
Assez parlé, passons à la pratique ! J'ai créé un lab complet pour que vous puissiez tester le SSL Bumping dans un environnement contrôlé : [squid-ssl-bumping-lab](https://github.com/darnodo/squid-ssl-bumping-lab).
|
||||||
|
|
||||||
|
### Qu'est-ce que Squid ? 🦑
|
||||||
|
|
||||||
|
Squid est un proxy cache très populaire qui supporte le SSL Bumping. C'est l'outil parfait pour notre expérimentation !
|
||||||
|
|
||||||
|
### Architecture du Lab 🏗️
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Installation Rapide 🚀
|
||||||
|
|
||||||
|
1. **Clonez le repository** :
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/darnodo/squid-ssl-bumping-lab
|
||||||
|
cd squid-ssl-bumping-lab
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Générez votre CA** (ou utilisez une existante) :
|
||||||
|
```bash
|
||||||
|
# Créer le dossier ssl/
|
||||||
|
mkdir -p ssl
|
||||||
|
|
||||||
|
# Générer une CA auto-signée
|
||||||
|
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \
|
||||||
|
-keyout ssl/squid-ca-key.pem \
|
||||||
|
-out ssl/squid-ca-cert.pem \
|
||||||
|
-subj "/CN=Squid CA/O=Mon Lab/C=FR"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Lancez le lab** :
|
||||||
|
```bash
|
||||||
|
# Sans export de logs
|
||||||
|
docker-compose up --build -d
|
||||||
|
|
||||||
|
# Ou avec Fluent Bit pour exporter les logs
|
||||||
|
docker-compose --profile logging up --build -d
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Configurez votre navigateur** :
|
||||||
|
- Proxy HTTP/HTTPS : `localhost:3128`
|
||||||
|
- Importez `ssl/squid-ca-cert.pem` comme CA de confiance
|
||||||
|
|
||||||
|
> [!WARNING] **Lab Only ! Ne Faites Jamais Ça en Production ! 🚫**
|
||||||
|
>
|
||||||
|
> Ce lab est **uniquement** pour l'apprentissage !
|
||||||
|
> - N'utilisez JAMAIS cette CA en dehors du lab
|
||||||
|
> - Ne faites pas de SSL Bumping sans autorisation explicite
|
||||||
|
> - Supprimez la CA de votre système après les tests
|
||||||
|
|
||||||
|
### Ce Que Vous Verrez 👀
|
||||||
|
|
||||||
|
Une fois configuré, visitez n'importe quel site HTTPS et regardez les logs :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Voir les logs en temps réel
|
||||||
|
docker-compose exec squid tail -f /var/log/squid/access.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Vous verrez quelque chose comme :
|
||||||
|
```
|
||||||
|
1719151234.567 342 192.168.1.100 TCP_MISS/200 15234 GET https://www.example.com/api/data - HIER_DIRECT/93.184.216.34
|
||||||
|
```
|
||||||
|
|
||||||
|
Magie ! Vous voyez l'URL **complète** même en HTTPS ! 🎉
|
||||||
|
|
||||||
|
### Analyser les Certificats 🔍
|
||||||
|
|
||||||
|
Pour voir le faux certificat en action :
|
||||||
|
1. Visitez un site HTTPS via le proxy
|
||||||
|
2. Cliquez sur le cadenas dans votre navigateur
|
||||||
|
3. Regardez les détails du certificat
|
||||||
|
4. Surprise ! Il est signé par "Squid CA" et non par la vraie CA !
|
||||||
|
|
||||||
|
## Partie 4 : Se Protéger du SSL Bumping 🛡️
|
||||||
|
|
||||||
|
Maintenant qu'on sait comment ça marche, comment s'en protéger ? Ou du moins, comment le détecter ?
|
||||||
|
|
||||||
|
### Pour les Utilisateurs : Les Signaux d'Alerte 🚨
|
||||||
|
|
||||||
|
1. **Vérifiez les Certificats** 📜
|
||||||
|
- Cliquez sur le cadenas et examinez le certificat
|
||||||
|
- L'émetteur devrait être une CA connue (Let's Encrypt, DigiCert...)
|
||||||
|
- Méfiez-vous des CA d'entreprise ou inconnues
|
||||||
|
|
||||||
|
2. **Certificate Pinning** 📌
|
||||||
|
- Certaines applis vérifient que le certificat est EXACTEMENT celui attendu
|
||||||
|
- Si c'est différent = refus de connexion
|
||||||
|
- Les apps bancaires utilisent souvent cette technique
|
||||||
|
|
||||||
|
> [!TIP] **Le Test Ultime : Comparez les Empreintes ! 🔬**
|
||||||
|
>
|
||||||
|
> 1. Notez l'empreinte (fingerprint) SHA-256 du certificat depuis votre réseau
|
||||||
|
> 2. Comparez avec l'empreinte depuis un autre réseau (4G mobile par exemple)
|
||||||
|
> 3. Si elles sont différentes = SSL Bumping probable !
|
||||||
|
|
||||||
|
### Pour les Entreprises : Les Bonnes Pratiques 💼
|
||||||
|
|
||||||
|
Si vous DEVEZ utiliser le SSL Bumping :
|
||||||
|
|
||||||
|
1. **Transparence Totale** 📢
|
||||||
|
- Informez clairement les utilisateurs
|
||||||
|
- Affichez une politique claire d'utilisation
|
||||||
|
- Respectez la législation locale
|
||||||
|
|
||||||
|
2. **Sécurité Maximale** 🔒
|
||||||
|
- Protégez la clé privée de votre CA comme un trésor
|
||||||
|
- Utilisez un HSM (Hardware Security Module) si possible
|
||||||
|
- Limitez la durée de vie des certificats
|
||||||
|
|
||||||
|
3. **Exceptions Nécessaires** ⛔
|
||||||
|
- Ne bumpez JAMAIS les sites bancaires
|
||||||
|
- Excluez les sites de santé
|
||||||
|
- Respectez la vie privée (messageries, etc.)
|
||||||
|
|
||||||
|
### L'Alternative : Le SNI Filtering 🎯
|
||||||
|
|
||||||
|
Plutôt que de décrypter, pourquoi ne pas simplement filtrer par nom de domaine ?
|
||||||
|
|
||||||
|
```
|
||||||
|
Client ──"Je veux example.com" (en clair)──> Proxy ──> Décision
|
||||||
|
↑
|
||||||
|
SNI Header
|
||||||
|
(Server Name Indication)
|
||||||
|
```
|
||||||
|
|
||||||
|
Le SNI permet de voir le domaine sans décrypter. C'est moins intrusif mais aussi moins précis (on ne voit que le domaine, pas l'URL complète).
|
||||||
|
|
||||||
|
## Partie 5 : L'Éthique et la Légalité ⚖️
|
||||||
|
|
||||||
|
### Les Questions Éthiques 🤔
|
||||||
|
|
||||||
|
Le SSL Bumping soulève des questions profondes :
|
||||||
|
|
||||||
|
1. **Vie Privée vs Sécurité** 🔐 vs 👁️
|
||||||
|
- Où placer le curseur ?
|
||||||
|
- La sécurité justifie-t-elle tout ?
|
||||||
|
- Quid du consentement éclairé ?
|
||||||
|
|
||||||
|
2. **Confiance Brisée** 💔
|
||||||
|
- HTTPS promettait du "bout en bout"
|
||||||
|
- Le SSL Bumping brise cette promesse
|
||||||
|
- Impact sur la confiance numérique globale
|
||||||
|
|
||||||
|
3. **Pente Glissante** 🎿
|
||||||
|
- Commencer par la sécurité...
|
||||||
|
- Finir par la surveillance ?
|
||||||
|
- Qui surveille les surveillants ?
|
||||||
|
|
||||||
|
### Le Cadre Légal 📜
|
||||||
|
|
||||||
|
Le SSL Bumping n'est pas illégal en soi, MAIS :
|
||||||
|
|
||||||
|
- **Consentement** : Les utilisateurs doivent être informés
|
||||||
|
- **Proportionnalité** : L'usage doit être justifié
|
||||||
|
- **Protection des données** : RGPD et autres réglementations s'appliquent
|
||||||
|
- **Contexte** : Entreprise ≠ Café public ≠ Domicile
|
||||||
|
|
||||||
|
> [!WARNING] **Rappel Important : La Légalité Varie ! 🌍**
|
||||||
|
>
|
||||||
|
> Les lois diffèrent selon les pays et les contextes :
|
||||||
|
> - En entreprise : Généralement OK avec information
|
||||||
|
> - Dans le public : Très réglementé voire interdit
|
||||||
|
> - À la maison : Complexe (enfants, invités...)
|
||||||
|
>
|
||||||
|
> Consultez toujours un juriste avant déploiement !
|
||||||
|
|
||||||
|
## Conclusion : Le Cadenas Vert a-t-il Encore un Sens ? 🔒❓
|
||||||
|
|
||||||
|
Alors, après tout ça, que penser de notre petit cadenas vert ? Est-il devenu obsolète ? Pas du tout !
|
||||||
|
|
||||||
|
Le SSL Bumping nous rappelle que :
|
||||||
|
|
||||||
|
1. **La Sécurité est Relative** 🎭
|
||||||
|
- Aucune technologie n'est infaillible
|
||||||
|
- Le contexte est crucial
|
||||||
|
- La vigilance reste de mise
|
||||||
|
|
||||||
|
2. **La Technologie est Neutre** ⚖️
|
||||||
|
- SSL Bumping peut protéger ou espionner
|
||||||
|
- L'intention fait la différence
|
||||||
|
- L'éthique guide l'usage
|
||||||
|
|
||||||
|
3. **L'Éducation est Essentielle** 📚
|
||||||
|
- Comprendre pour mieux se protéger
|
||||||
|
- Démystifier pour mieux décider
|
||||||
|
- Partager pour progresser ensemble
|
||||||
|
|
||||||
|
Le cadenas vert reste un excellent indicateur de sécurité. Mais comme toute technologie, il a ses limites. Le SSL Bumping nous montre qu'entre vous et le serveur, il peut y avoir des intermédiaires... parfois légitimes, parfois moins.
|
||||||
|
|
||||||
|
**Mon conseil ?** Restez curieux, restez vigilants, et n'hésitez pas à expérimenter (dans un lab, bien sûr !). La sécurité informatique est un domaine fascinant où l'attaque et la défense s'enrichissent mutuellement.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Ressources pour aller plus loin :**
|
||||||
|
- 🧪 [Mon Lab SSL Bumping](https://github.com/darnodo/squid-ssl-bumping-lab)
|
||||||
|
- 📖 [Documentation Squid SSL Bump](http://www.squid-cache.org/Doc/config/ssl_bump/)
|
||||||
|
- 🔐 [OWASP sur l'Inspection TLS](https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet.html)
|
||||||
|
|
||||||
|
*Stay safe, stay curious!* 🚀🔒
|
||||||
@@ -115,4 +115,4 @@ hexo: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="cu
|
|||||||
hugo: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M11.754 0a3.998 3.998 0 00-2.049.596L3.33 4.532a4.252 4.252 0 00-2.017 3.615v8.03c0 1.473.79 2.838 2.067 3.574l6.486 3.733a3.88 3.88 0 003.835.018l7.043-3.966a3.817 3.817 0 001.943-3.323V7.752a3.57 3.57 0 00-1.774-3.084L13.817.541a3.998 3.998 0 00-2.063-.54zm.022 1.674c.413-.006.828.1 1.2.315l7.095 4.127c.584.34.941.96.94 1.635v8.462c0 .774-.414 1.484-1.089 1.864l-7.042 3.966a2.199 2.199 0 01-2.179-.01l-6.485-3.734a2.447 2.447 0 01-1.228-2.123v-8.03c0-.893.461-1.72 1.221-2.19l6.376-3.935a2.323 2.323 0 011.19-.347zm-4.7 3.844V18.37h2.69v-5.62h4.46v5.62h2.696V5.518h-2.696v4.681h-4.46V5.518Z"/></svg>
|
hugo: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M11.754 0a3.998 3.998 0 00-2.049.596L3.33 4.532a4.252 4.252 0 00-2.017 3.615v8.03c0 1.473.79 2.838 2.067 3.574l6.486 3.733a3.88 3.88 0 003.835.018l7.043-3.966a3.817 3.817 0 001.943-3.323V7.752a3.57 3.57 0 00-1.774-3.084L13.817.541a3.998 3.998 0 00-2.063-.54zm.022 1.674c.413-.006.828.1 1.2.315l7.095 4.127c.584.34.941.96.94 1.635v8.462c0 .774-.414 1.484-1.089 1.864l-7.042 3.966a2.199 2.199 0 01-2.179-.01l-6.485-3.734a2.447 2.447 0 01-1.228-2.123v-8.03c0-.893.461-1.72 1.221-2.19l6.376-3.935a2.323 2.323 0 011.19-.347zm-4.7 3.844V18.37h2.69v-5.62h4.46v5.62h2.696V5.518h-2.696v4.681h-4.46V5.518Z"/></svg>
|
||||||
html: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M1.5 0h21l-1.91 21.563L11.977 24l-8.564-2.438L1.5 0zm7.031 9.75l-.232-2.718 10.059.003.23-2.622L5.412 4.41l.698 8.01h9.126l-.326 3.426-2.91.804-2.955-.81-.188-2.11H6.248l.33 4.171L12 19.351l5.379-1.443.744-8.157H8.531z"/></svg>
|
html: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M1.5 0h21l-1.91 21.563L11.977 24l-8.564-2.438L1.5 0zm7.031 9.75l-.232-2.718 10.059.003.23-2.622L5.412 4.41l.698 8.01h9.126l-.326 3.426-2.91.804-2.955-.81-.188-2.11H6.248l.33 4.171L12 19.351l5.379-1.443.744-8.157H8.531z"/></svg>
|
||||||
mdbook: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M22.77 5.343c.023.337 0 .613-.073.817l-4.314 14.227c-.072.252-.24.445-.504.6a1.67 1.67 0 0 1-.805.23H3.772c-1.154 0-1.839-.337-2.079-1.01-.096-.264-.096-.469.012-.625.108-.144.288-.216.553-.216h12.52c.89 0 1.514-.168 1.85-.493.337-.324.686-1.07 1.034-2.21l3.954-13.05c.216-.71.12-1.334-.265-1.875-.384-.54-.937-.817-1.646-.817H8.735c-.12 0-.373.048-.734.132l.012-.048A2.458 2.458 0 0 0 7.33.933a.979.979 0 0 0-.517.168 1.794 1.794 0 0 0-.385.337c-.096.12-.18.264-.276.456a5.76 5.76 0 0 0-.228.517 7.95 7.95 0 0 1-.217.505c-.084.18-.156.324-.24.444-.06.073-.144.18-.24.3-.096.121-.193.241-.265.337a.776.776 0 0 0-.132.265c-.024.084-.012.216.024.384.036.168.048.289.048.373-.036.36-.168.829-.396 1.394-.229.564-.433.973-.613 1.213a5.201 5.201 0 0 1-.312.325c-.169.168-.277.312-.313.444-.036.048-.036.18-.012.409.036.216.048.372.036.456-.036.325-.156.757-.36 1.298a9.47 9.47 0 0 1-.601 1.322c-.024.06-.108.168-.24.336-.133.168-.217.3-.24.409-.025.072-.013.216.011.408.024.193.024.337-.012.433-.072.36-.216.805-.432 1.322-.217.516-.433.949-.65 1.321-.06.097-.131.205-.24.337-.096.132-.18.24-.24.336a.927.927 0 0 0-.12.3.53.53 0 0 0 .048.277c.036.132.048.228.048.313-.012.132-.024.312-.06.528-.024.216-.048.349-.048.385-.216.576-.204 1.19.024 1.826.264.745.745 1.382 1.43 1.899.685.516 1.406.769 2.139.769H17.05c.625 0 1.214-.205 1.767-.625.553-.42.925-.937 1.105-1.55l3.966-13.05c.216-.696.12-1.31-.265-1.862-.204-.3-.48-.505-.853-.649ZM7.16 15.677l1.707-5.143h1.297c.457 0 3.46-.204 3.052 2.103-.408 2.307-2.259 3.028-4.422 3.052-2.162.024-1.634-.012-1.634-.012zm2.283-.721c.565-.012 2.271-.349 2.656-2.055.384-1.706-1.382-1.61-1.382-1.61h-1.07l-1.225 3.665c.012.012.469.012 1.021 0zm-.396-5.78 1.646-5.107h1.178l.096 4.086 2.835-4.086h1.19l-1.634 5.107h-.853l1.502-4.253-2.944 4.253h-.817l-.096-4.205-1.298 4.205z"/></svg>
|
mdbook: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M22.77 5.343c.023.337 0 .613-.073.817l-4.314 14.227c-.072.252-.24.445-.504.6a1.67 1.67 0 0 1-.805.23H3.772c-1.154 0-1.839-.337-2.079-1.01-.096-.264-.096-.469.012-.625.108-.144.288-.216.553-.216h12.52c.89 0 1.514-.168 1.85-.493.337-.324.686-1.07 1.034-2.21l3.954-13.05c.216-.71.12-1.334-.265-1.875-.384-.54-.937-.817-1.646-.817H8.735c-.12 0-.373.048-.734.132l.012-.048A2.458 2.458 0 0 0 7.33.933a.979.979 0 0 0-.517.168 1.794 1.794 0 0 0-.385.337c-.096.12-.18.264-.276.456a5.76 5.76 0 0 0-.228.517 7.95 7.95 0 0 1-.217.505c-.084.18-.156.324-.24.444-.06.073-.144.18-.24.3-.096.121-.193.241-.265.337a.776.776 0 0 0-.132.265c-.024.084-.012.216.024.384.036.168.048.289.048.373-.036.36-.168.829-.396 1.394-.229.564-.433.973-.613 1.213a5.201 5.201 0 0 1-.312.325c-.169.168-.277.312-.313.444-.036.048-.036.18-.012.409.036.216.048.372.036.456-.036.325-.156.757-.36 1.298a9.47 9.47 0 0 1-.601 1.322c-.024.06-.108.168-.24.336-.133.168-.217.3-.24.409-.025.072-.013.216.011.408.024.193.024.337-.012.433-.072.36-.216.805-.432 1.322-.217.516-.433.949-.65 1.321-.06.097-.131.205-.24.337-.096.132-.18.24-.24.336a.927.927 0 0 0-.12.3.53.53 0 0 0 .048.277c.036.132.048.228.048.313-.012.132-.024.312-.06.528-.024.216-.048.349-.048.385-.216.576-.204 1.19.024 1.826.264.745.745 1.382 1.43 1.899.685.516 1.406.769 2.139.769H17.05c.625 0 1.214-.205 1.767-.625.553-.42.925-.937 1.105-1.55l3.966-13.05c.216-.696.12-1.31-.265-1.862-.204-.3-.48-.505-.853-.649ZM7.16 15.677l1.707-5.143h1.297c.457 0 3.46-.204 3.052 2.103-.408 2.307-2.259 3.028-4.422 3.052-2.162.024-1.634-.012-1.634-.012zm2.283-.721c.565-.012 2.271-.349 2.656-2.055.384-1.706-1.382-1.61-1.382-1.61h-1.07l-1.225 3.665c.012.012.469.012 1.021 0zm-.396-5.78 1.646-5.107h1.178l.096 4.086 2.835-4.086h1.19l-1.634 5.107h-.853l1.502-4.253-2.944 4.253h-.817l-.096-4.205-1.298 4.205z"/></svg>
|
||||||
nuxt: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M13.4642 19.8295h8.9218c.2834 0 .5618-.0723.8072-.2098a1.5899 1.5899 0 0 0 .5908-.5732 1.5293 1.5293 0 0 0 .216-.783 1.529 1.529 0 0 0-.2167-.7828L17.7916 7.4142a1.5904 1.5904 0 0 0-.5907-.573 1.6524 1.6524 0 0 0-.807-.2099c-.2833 0-.5616.0724-.807.2098a1.5904 1.5904 0 0 0-.5907.5731L13.4642 9.99l-2.9954-5.0366a1.5913 1.5913 0 0 0-.591-.573 1.6533 1.6533 0 0 0-.8071-.2098c-.2834 0-.5617.0723-.8072.2097a1.5913 1.5913 0 0 0-.591.573L.2168 17.4808A1.5292 1.5292 0 0 0 0 18.2635c-.0001.2749.0744.545.216.783a1.59 1.59 0 0 0 .5908.5732c.2454.1375.5238.2098.8072.2098h5.6003c2.219 0 3.8554-.9454 4.9813-2.7899l2.7337-4.5922L16.3935 9.99l4.3944 7.382h-5.8586ZM7.123 17.3694l-3.9083-.0009 5.8586-9.8421 2.9232 4.921-1.9572 3.2892c-.7478 1.1967-1.5972 1.6328-2.9163 1.6328z"/></svg>
|
nuxt: <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M13.4642 19.8295h8.9218c.2834 0 .5618-.0723.8072-.2098a1.5899 1.5899 0 0 0 .5908-.5732 1.5293 1.5293 0 0 0 .216-.783 1.529 1.529 0 0 0-.2167-.7828L17.7916 7.4142a1.5904 1.5904 0 0 0-.5907-.573 1.6524 1.6524 0 0 0-.807-.2099c-.2833 0-.5616.0724-.807.2098a1.5904 1.5904 0 0 0-.5907.5731L13.4642 9.99l-2.9954-5.0366a1.5913 1.5913 0 0 0-.591-.573 1.6533 1.6533 0 0 0-.8071-.2098c-.2834 0-.5617.0723-.8072.2097a1.5913 1.5913 0 0 0-.591.573L.2168 17.4808A1.5292 1.5292 0 0 0 0 18.2635c-.0001.2749.0744.545.216.783a1.59 1.59 0 0 0 .5908.5732c.2454.1375.5238.2098.8072.2098h5.6003c2.219 0 3.8554-.9454 4.9813-2.7899l2.7337-4.5922L16.3935 9.99l4.3944 7.382h-5.8586ZM7.123 17.3694l-3.9083-.0009 5.8586-9.8421 2.9232 4.921-1.9572 3.2892c-.7478 1.1967-1.5972 1.6328-2.9163 1.6328z"/></svg>
|
||||||
|
|||||||
Reference in New Issue
Block a user