Web Açık Yazı Tipi Biçimi (.woff)
W3C StandartWeb Open Font Format (WOFF), W3C tarafından onaylanan, standart TrueType veya OpenType fontlarını zlib sıkıştırması ve XML lisanslama meta verileriyle sarmalayan, birinci nesil açık standart web fontu formatıdır.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, WOFF dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, WOFF dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
77 4F 46 46ASCII GÖSTERİMİ: wOFF
Standartlaştırma: W3C Recommendation (2012)
Teknik Özellikler
| Kapsayıcı mimarisi | Ardından tablo dizini, zlib sıkıştırmalı tablo verileri, isteğe bağlı genişletilmiş üstveri ve özel veriler gelen 44 baytlık WOFF üstbilgisi |
| Sıkıştırma | Her yazı tipi tablosuna ayrı ayrı Deflate (zlib) sıkıştırması uygulanır |
| Bayt Düzeni (Endianness) | Big-Endian (SFNT standard) |
| Renk Uzayları | Temel yazı tipi tablolarından devralınır |
| Kanallar ve Yapı | TrueType ('glyf') veya PostScript ('CFF ') glif dış çizgileri, ölçümleri ve tipografik özellikleri |
| Maksimum Boyutlar | Yazı tipi dosyası başına 65.535 glife kadar |
| Şeffaflık | Temel yazı tipi biçiminden devralınır |
| Akış ve Aşamalı İşleme | Tablo tablo açma, yazı tiplerinin akışla yüklenmesini sağlar |
Teknik karşılaştırma matrisi: WOFF ve rakipleri
| Teknik Nitelik | WOFF (Güncel) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Sıkıştırma Kodeği | Tablo başına Deflate (zlib) | Tablo ön işlemeli Brotli | Sıkıştırılmamış SFNT | Sıkıştırılmamış SFNT |
| Sihirli İmza (Magic Signature) | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Göreceli Dosya Boyutu | Genellikle TTF’den küçüktür; tasarruf yazı tipine göre değişir. | Genellikle TTF’den küçüktür; tasarruf yazı tipine göre değişir. | Temel standart (%100) | Temel standart (%100) |
| Hedef Ortam | Eski web tarayıcıları (IE9+, Safari 5+) | Destek, tarayıcıya göre değişir. | Masaüstü işletim sistemleri | Masaüstü yayıncılık ve baskı |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Tarayıcı konsolunda şu uyarı görünür: 'Failed to decode downloaded font: OTS parsing error'.
Kök Neden: Bildirilen sıkıştırılmamış tablo uzunluğunda uyuşmazlık veya hasarlı zlib akışı.
Kurtarma: Font tablolarını yeniden sıkıştır veya File2File.app Font Converter ile WOFF2'ye dönüştür.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
Web tarayıcıları, güvenilmeyen web alan adlarından indirilen WOFF dosyalarını, kötü amaçlı kod yüklerini engellemek için OpenType Sanitizer (OTS) kullanarak ayrıştırır.
Bilinen Saldırı Vektörleri
- Bozuk font tablosu öbeklerinin zlib ile açılması sırasında arabellek aşımı (buffer over-read).
- Font oluşturucularda yığın (heap) arabelleği taşmalarını tetikleyen uyuşmayan tablo uzunluğu alanları.
- Font tablosu genişlemesi sırasında bellek tükenmesi yoluyla hizmet reddi (DoS).
Savunmaya yönelik en iyi uygulamalar: İndirilen WOFF dosyalarını OTS ile temizlemeden işletim sisteminin yazı tipi motorlarına aktarma.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- Ham TTF veya OTF dosyalarına kıyasla web yazı tipi dosyalarının boyutunu azaltabilir; miktar yazı tipine ve kodlayıcıya bağlıdır.
- 2011'den sonra yayımlanan tüm masaüstü ve mobil web tarayıcılarında geriye dönük uyumluluk sunar.
- Font lisanslama, yazar bilgileri ve dökümhane telif hakkı bilgileri için isteğe bağlı bir XML meta veri bloğu içerir.
Teknik Kısıtlamalar ve Eksiler
- Birçok web iş akışında yerini Brotli sıkıştırması ve yazı tipi tablosu dönüşümleri kullanan WOFF2 almıştır; dosya boyutundaki tasarruf değişir.
- TTF/OTF formatına dönüştürülmeden doğrudan masaüstü işletim sistemlerine (Windows/Mac) kurulamaz.
- Eski zlib sıkıştırma algoritması, modern entropi kodlayıcılara göre daha az verimlidir.
İlginç Teknik Bilgiler
- WOFF 1.0 için sihirli baytlar (magic bytes) 'wOFF' (0x77 0x4F 0x46 0x46) iken, WOFF 2.0 'wOF2' kullanır.
- Tipografi dökümhaneleri, WOFF'un özel kapsayıcısı web yazı tiplerini korsanlığa açık masaüstü yazı tiplerinden ayırdığı için ancak WOFF oluşturulduktan sonra yazı tiplerinin web'de kullanılmasına izin verdi.
- WOFF, resmi bir W3C tavsiyesi haline gelmeden önce ilk olarak 2010 yılında Firefox 3.6'da uygulanmıştır.
Sıkça Sorulan Teknik Sorular
WOFF ve WOFF2 arasındaki fark nedir?
WOFF zlib sıkıştırması kullanır. WOFF2 ise Google'ın daha yeni Brotli algoritmasını ve tablo dönüşümlerini kullanarak WOFF'tan yaklaşık %30 daha küçük dosyalar oluşturur.
Masaüstü kullanımı için bir WOFF fontunu TTF veya OTF'ye nasıl dönüştürebilirim?
WOFF dosyalarını web tarayıcında doğrudan File2File.app ile saniyeler içinde masaüstüne kurulabilen TTF veya OTF yazı tiplerine dönüştürebilirsin.
Modern web sitelerinde hâlâ WOFF 1.0'a ihtiyacım var mı?
Hayır. Tüm güncel tarayıcılar WOFF2'yi yerleşik olarak destekler. WOFF 1.0'a yalnızca Internet Explorer gibi kullanımdan kalkmış eski tarayıcıları desteklemen gerekiyorsa ihtiyaç duyarsın.