Format de police web ouverte (.woff)
Recommandation StandardWeb Open Font Format (WOFF) est le premier format de police web ouvert standard de première génération, approuvé par le W3C, qui enveloppe des polices standard TrueType ou OpenType avec une compression zlib et des métadonnées de licence XML.
Inspecter et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers WOFF en inspectant la séquence d'octets binaires de tête :
Signature d'en-tête au niveau des octets (Magic Bytes)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers WOFF en inspectant la séquence d'octets binaires de tête :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
77 4F 46 46REPRÉSENTATION ASCII : wOFF
Normalisation : Recommandation du W3C (2012)
Spécifications techniques
| Architecture de conteneur | En-tête WOFF de 44 octets suivi d'un répertoire de tables, de données de tables compressées avec zlib, de métadonnées étendues optionnelles et de données privées |
| Compression | Compression Deflate (zlib) appliquée à chaque table de police individuelle |
| Boutisme des octets | Bout-de-Poids-Fort (standard SFNT) |
| Espaces colorimétriques | Hérité des tables de polices sous-jacentes |
| Canaux et structure | Contours de glyphes TrueType ('glyf') ou PostScript ('CFF '), métriques et fonctionnalités typographiques |
| Dimensions maximales | Jusqu'à 65 535 glyphes par fichier de police |
| Transparence | Hérité du format de police sous-jacent |
| Streaming et progressif | La décompression table par table permet le chargement de polices en flux continu |
Matrice de comparaison technique : WOFF vs Concurrents
| Attribut technique | WOFF (Actuel) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Codec de compression | Deflate (zlib) par table | Brotli avec prétraitement de tables | SFNT non compressé | SFNT non compressé |
| Signature magique | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Taille de fichier relative | ~40 % plus petit que TTF | ~60 % plus petit que TTF | Standard de référence (100 %) | Standard de référence (100 %) |
| Environnement cible | Navigateurs web obsolètes (IE9+, Safari 5+) | Navigateurs web modernes (universel) | Systèmes d'exploitation de bureau | Publication assistée par ordinateur et impression |
Modes de corruption courants et guide de récupération hexadécimale
Avertissement dans la console du navigateur : 'Failed to decode downloaded font: OTS parsing error'.
Cause racine: Inadéquation de la longueur de table non compressée déclarée ou flux zlib endommagé.
Récupération: Recompresser les tables de polices ou convertir en WOFF2 à l'aide du convertisseur de polices File2File.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Les navigateurs web analysent les fichiers WOFF téléchargés à partir de domaines web non sécurisés à l'aide de l'outil OpenType Sanitizer (OTS) pour bloquer les charges utiles d'exploitation.
Vecteurs d'attaque connus
- Surlecture de tampon lors de la décompression zlib de morceaux de tables de polices corrompus.
- Champs de longueur de table incompatibles déclenchant des dépassements de tampon de tas dans les moteurs de rendu de polices.
- Déni de service par épuisement de la mémoire lors de l'expansion des tables de polices.
Bonnes pratiques de défense: Assainissez toujours les fichiers WOFF téléchargés avec OTS avant de les transmettre aux moteurs de polices du système d'exploitation.
Origines historiques et jalons
Principaux avantages
- Réduit la taille des fichiers de polices web de 30 % à 50 % par rapport aux fichiers TTF ou OTF bruts non compressés.
- Rétrocompatibilité universelle sur tous les navigateurs web de bureau et mobiles sortis depuis 2011.
- Comprend un bloc de métadonnées XML optionnel pour les licences de polices, les crédits des auteurs et les informations de copyright de la fonderie.
Limites techniques
- Supplanté par WOFF2, qui compresse environ 30 % plus petit grâce à l'algorithme Brotli.
- Ne peut pas être installé directement sur les systèmes d'exploitation de bureau (Windows/Mac) sans conversion préalable en TTF/OTF.
- L'ancien algorithme de compression zlib est moins efficace que les codeurs d'entropie modernes.
Anecdotes techniques
- Les octets magiques de WOFF 1.0 sont 'wOFF' (0x77 0x4F 0x46 0x46), tandis que WOFF 2.0 utilise 'wOF2'.
- Les fonderies typographiques ont accepté d'autoriser leurs polices sur le web seulement après la création de WOFF, car son conteneur spécialisé distinguait les polices web des polices de bureau piratables.
- WOFF a été initialement implémenté dans Firefox 3.6 en 2010 avant de devenir une recommandation officielle du W3C.
Foire aux questions techniques
Quelle est la différence entre WOFF et WOFF2 ?
WOFF utilise la compression zlib, tandis que WOFF2 utilise le nouvel algorithme Brotli de Google et des transformations de tables, ce qui donne des fichiers environ 30 % plus petits que WOFF.
Comment puis-je convertir une police WOFF en TTF ou OTF pour une utilisation sur bureau ?
Vous pouvez convertir des fichiers WOFF en polices de bureau installables TTF ou OTF en quelques secondes à l'aide de File2File.app directement dans votre navigateur web.
Ai-je encore besoin de WOFF 1.0 sur les sites web modernes ?
Non. Tous les navigateurs modernes prennent en charge WOFF2 de manière native. WOFF 1.0 n'est nécessaire que si vous devez prendre en charge des navigateurs obsolètes comme Internet Explorer.