Webes nyílt betűformátum (WOFF) (.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ú webes betűtípus-formátum, 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ájtszintű fejlécaláírás (fájlazonosító bájtok)
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 ÁBRÁZOLÁS: wOFF
Szabványosítás: W3C Recommendation (2012)
Műszaki specifikációk
| Konténer architektúra | 44 bájtos WOFF-fejléc, amelyet táblakatalógus, zlib-tömörített táblaadatok, opcionális bővített metaadatok és saját adatok követnek |
| Tömörítés | Deflate (zlib) tömörítés minden egyes betűtípustáblán |
| Bájtsorrend | nagy bájtsorrend (SFNT-szabvány) |
| Színterek | Az alapul szolgáló betűtípustáblákból öröklődik |
| Csatornák és struktúra | TrueType („glyf”) vagy PostScript („CFF ”) karakterkép-kontúrok, metrikák és tipográfiai funkciók |
| Max. méretek | Betűkészletenként legfeljebb 65 535 glifa |
| Átlátszóság | Az alapul szolgáló betűtípus-formátumból öröklődik |
| Streaming és progresszív | A táblák egyenkénti kitömörítése lehetővé teszi a betűtípus adatfolyamként történő betöltését |
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 |
| Fájlazonosító | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relatív fájlméret | Gyakran kisebb a TTF-nél; a csökkenés mértéke betűkészletenként változik | Gyakran kisebb a TTF-nél; a csökkenés mértéke betűkészletenként változik | Alapszabvány (100%) | Alapszabvány (100%) |
| Célkörnyezet | Örökölt webböngészők (IE9+, Safari 5+) | A támogatás böngészőnként eltér. | 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 decode 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.app 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-kitö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.
Ajánlott védekezési módszerek: A letöltött WOFF-fájlokat mindig tisztítsa meg az OTS segítségével, mielőtt átadná őket az operációs rendszer betűtípus-motorjainak.
Történeti háttér és mérföldkövek
Főbb előnyök
- A WOFF a nyers TTF- vagy OTF-fájlokhoz képest csökkentheti a webes betűtípusfájlok méretét; a csökkenés a betűkészlettől és a kódolótól függ.
- A WOFF-ot számos böngésző támogatja, köztük régebbi verziók is; a kompatibilitás a böngésző verziójától és a platformtól függ.
- 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
- Számos webes munkafolyamatban a WOFF2 váltotta fel. A WOFF2 Brotli-tömörítést és betűtípustábla-átalakításokat használ; a fájlméret csökkenése változó.
- 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, a WOFF2 pedig Brotli-tömörítést és betűtípustábla-átalakításokat. A fájlméretek közötti különbség a betűkészlettől és a kódolótól függ.
Hogyan alakíthatok át egy WOFF betűtípust TTF- vagy OTF-formátumúvá asztali használatra?
A File2File.app segítségével másodpercek alatt konvertálhatja a WOFF-fájlokat telepíthető asztali TTF- vagy OTF-betűtípusokká, közvetlenül a böngészőben.
Szükségem van még a WOFF 1.0-ra a modern webhelyeken?
A jelenlegi főbb böngészők támogatják a WOFF2-t. Régebbi böngészők vagy bizonyos beágyazott környezetek esetén hasznos lehet WOFF tartalékformátumot is biztosítani.