Web Açık Yazı Tipi Biçimi (.woff)

W3C Standart

Web 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:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

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 46

ASCII GÖSTERİMİ: wOFF

Standartlaştırma: W3C Recommendation (2012)

Teknik Özellikler

Kapsayıcı mimarisiArdı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ırmaHer 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 BoyutlarYazı tipi dosyası başına 65.535 glife kadar
ŞeffaflıkTemel yazı tipi biçiminden devralınır
Akış ve Aşamalı İşlemeTablo tablo açma, yazı tiplerinin akışla yüklenmesini sağlar

Teknik karşılaştırma matrisi: WOFF ve rakipleri

Teknik NitelikWOFF (Güncel)WOFF2TTFOTF
Sıkıştırma KodeğiTablo başına Deflate (zlib)Tablo ön işlemeli BrotliSıkıştırılmamış SFNTSıkıştırılmamış SFNT
Sihirli İmza (Magic Signature)wOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Göreceli Dosya BoyutuGenellikle 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 OrtamEski web tarayıcıları (IE9+, Safari 5+)Destek, tarayıcıya göre değişir.Masaüstü işletim sistemleriMasaü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ı

2018Üstün Brotli sıkıştırma özelliği sayesinde tercih edilen web fontu standardı olarak yerini WOFF2'ye bıraktı.
2012W3C, WOFF 1.0 standardını resmi bir Web Standardı Tavsiyesi olarak yayınladı.
2009Henrik Rydgård, Tal Leming ve Jonathan Kew, web yazı tiplerinin lisanslama sorunlarını çözmek için WOFF'u tanımladı.

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.