Web Open Font Format (.woff)
W3C SzabványA Web Open Font Format (WOFF) a W3C által jóváhagyott, történelmi jelentőségű, első generációs nyílt szabványú webszövegforma, amely a szabványos TrueType vagy OpenType betűtípusokat zlib-tömörítéssel és XML licencelési metaadatokkal csomagolja.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) WOFF fájlokat:
Bájt-szintű fejléc aláírás (Magic Bytes)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) WOFF fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
77 4F 46 46ASCII REPREZENTÁCIÓ: wOFF
Szabványosítás: W3C Recommendation (2012)
Műszaki specifikációk
| Konténer architektúra | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| Tömörítés | Deflate (zlib) compression applied to each individual font table |
| Bájtsorrend | Big-Endian (SFNT standard) |
| Színterek | Inherited from underlying font tables |
| Csatornák és struktúra | TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features |
| Max. méretek | Up to 65,535 glyphs per font file |
| Átlátszóság | Inherited from underlying font format |
| Streaming és progresszív | Table-by-table decompression enables streaming font loading |
Műszaki összehasonlító mátrix: WOFF vs Versenytársak
| Technikai attribútum | WOFF (Jelenlegi) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Tömörítési kodek | Deflate (zlib) táblázatonként | Brotli táblázat-előfeldolgozással | Tömörítetlen SFNT | Tömörítetlen SFNT |
| Magic aláírás | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relatív fájlméret | ~40%-kal kisebb, mint a TTF | ~60%-kal kisebb, mint a TTF | Alapszabvány (100%) | Alapszabvány (100%) |
| Célkörnyezet | Örökölt webböngészők (IE9+, Safari 5+) | Modern webböngészők (univerzális) | Asztali operációs rendszerek | Asztali kiadványszerkesztés és nyomtatás |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
Böngészőkonzol-figyelmeztetés: 'Failed to download downloaded font: OTS parsing error'.
Kiváltó ok: Eltérés a deklarált tömörítetlen táblázathosszban vagy sérült zlib adatfolyam.
Helyreállítás: Tömörítse újra a betűtípus-táblázatokat, vagy alakítsa át WOFF2 formátumra a File2File Font Converter segítségével.
Biztonsági elemzés és elemző (parser) támadási vektorok
A webböngészők a nem megbízható webdoménekről letöltött WOFF-fájlokat az OpenType Sanitizer (OTS) segítségével elemzik, hogy blokkolják a kártevő payloadokat.
Ismert támadási vektorok
- Puffertúlolvasás a sérült betűtípus-táblázat darabjainak zlib-tömörítsekitömörítése során.
- Eltérő táblázathossz-mezők, amelyek heap puffertúlcsordulást váltanak ki a betűtípus-megjelenítőkben.
- Szolgáltatásmegtagadás memóriakimerülés révén a betűtípus-táblázat kibővítése során.
Védekező Legjobb Gyakorlatok:
Történeti háttér és mérföldkövek
Főbb előnyök
- 30%-ról 50%-ra csökkenti a webes betűtípusok fájlméretét a nyers, tömörítetlen TTF vagy OTF fájlokhoz képest.
- Univerzális visszamenőleges kompatibilitás minden asztali és mobil webböngészőben, amelyet 2011 óta adtak ki.
- Tartalmaz egy opcionális XML metaadat-blokkot a betűtípus-licenceléshez, a szerzői kreditekhez és az öntödei szerzői jogi információkhoz.
Technikai korlátok és hátrányok
- A WOFF2 váltotta fel, amely a Brotli algoritmus segítségével körülbelül 30%-kal kisebbre tömörít.
- Nem telepíthető közvetlenül asztali operációs rendszerekre (Windows/Mac) TTF/OTF formátumra való átalakítás nélkül.
- A régebbi zlib tömörítési algoritmus kevésbé hatékony, mint a modern entrópia-kódolók.
Érdekes technikai tudnivalók
- A WOFF 1.0 magic bájtjai a 'wOFF' (0x77 0x4F 0x46 0x46), míg a WOFF 2.0 a 'wOF2' bájtokat használja.
- A betűtípus-öntödék csak a WOFF létrehozása után egyeztek meg abban, hogy engedélyezik betűtípusaikat a weben, mivel annak speciális tárolója megkülönböztette a webes betűtípusokat a kalózkodásra alkalmas asztali betűtípusoktól.
- A WOFF-ot eredetileg a Firefox 3.6-ban implementálták 2010-ben, mielőtt hivatalos W3C-ajánlássá vált volna.
Gyakran Ismételt Műszaki Kérdések
Mi a különbség a WOFF és a WOFF2 között?
A WOFF zlib tömörítést használ, míg a WOFF2 a Google újabb Brotli algoritmusát és táblatranszformációit, aminek eredményeként a fájlok körülbelül 30%-kal kisebbek, mint a WOFF.
Hogyan konvertálhatok át egy WOFF betűtípust TTF-be vagy OTF-be asztali használatra?
Másodpercek alatt konvertálhatsz WOFF fájlokat telepíthető asztali TTF vagy OTF betűtípusokká a File2File.app segítségével közvetlenül a webböngésződben.
Szükségem van még a WOFF 1.0-ra a modern webhelyeken?
Nem. Minden modern böngésző natívan támogatja a WOFF2-t. A WOFF 1.0 csak akkor szükséges, ha elavult, régi böngészőket, például az Internet Explorert is támogatnod kell.