Web Open Font Format (.woff)

W3C Τυπικό

Η μορφή Web Open Font Format (WOFF) είναι το ιστορικό ανοιχτό πρότυπο γραμματοσειρών ιστού πρώτης γενιάς που υποστηρίχθηκε από το W3C, η οποία περιλαμβάνει τυπικές γραμματοσειρές TrueType ή OpenType με συμπίεση zlib και μεταδεδομένα αδειοδότησης XML.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία WOFF ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: Δεν μεταφορτώνεται κανένα byte σε εξωτερικούς διακομιστές. Όλη η επεξεργασία γίνεται τοπικά στο απομονωμένο περιβάλλον του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία WOFF ελέγχοντας την αρχική δυαδική ακολουθία byte:

ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):

77 4F 46 46

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: wOFF

Τυποποίηση: W3C Recommendation (2012)

Τεχνικές Προδιαγραφές

Αρχιτεκτονική ΠεριέκτηΚεφαλίδα WOFF 44 byte, ακολουθούμενη από κατάλογο πινάκων, δεδομένα πινάκων συμπιεσμένα με zlib, προαιρετικά εκτεταμένα μεταδεδομένα και ιδιωτικά δεδομένα
ΣυμπίεσηΣυμπίεση Deflate (zlib) σε κάθε μεμονωμένο πίνακα γραμματοσειράς
Σειρά byte (endianness)Big-Endian (SFNT standard)
Χρωματικοί ΧώροιΚληρονομούνται από τους υποκείμενους πίνακες γραμματοσειράς
Κανάλια & ΔομήΠεριγράμματα γλυφών TrueType («glyf») ή PostScript («CFF»), μετρικές και τυπογραφικές δυνατότητες
Μέγιστες ΔιαστάσειςΈως 65,535 γλυφά ανά αρχείο γραμματοσειράς
ΔιαφάνειαΚληρονομείται από την υποκείμενη μορφή γραμματοσειράς
Ροή δεδομένων και προοδευτική φόρτωσηΗ αποσυμπίεση ανά πίνακα επιτρέπει τη σταδιακή φόρτωση γραμματοσειράς

Τεχνικός Πίνακας Σύγκρισης: WOFF έναντι Ανταγωνιστών

Τεχνικό χαρακτηριστικόWOFF (Τρέχον)WOFF2TTFOTF
Κωδικοποιητής συμπίεσηςDeflate (zlib) ανά πίνακαBrotli με προεπεξεργασία πινάκωνΑσυμπίεστο SFNTΑσυμπίεστο SFNT
Μαγική υπογραφήwOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Σχετικό μέγεθος αρχείουΣυχνά μικρότερο από το TTF· η εξοικονόμηση διαφέρει ανά γραμματοσειράΣυχνά μικρότερο από το TTF· η εξοικονόμηση διαφέρει ανά γραμματοσειράΒασικό πρότυπο (100%)Βασικό πρότυπο (100%)
Περιβάλλον-στόχοςΠαλαιά προγράμματα περιήγησης ιστού (IE9+, Safari 5+)Η υποστήριξη διαφέρει ανά πρόγραμμα περιήγησης.Λειτουργικά συστήματα επιτραπέζιων υπολογιστώνΕπιτραπέζια δημοσίευση & εκτύπωση

Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων

Προειδοποίηση κονσόλας προγράμματος περιήγησης: 'Failed to decode downloaded font: OTS parsing error'.

Βασική Αιτία: Ασυμφωνία στο δηλωμένο μήκος ασυμπίεστου πίνακα ή κατεστραμμένη ροή zlib.

Ανάκτηση: Επανασυμπίεση πινάκων γραμματοσειρών ή μετατροπή σε WOFF2 χρησιμοποιώντας το File2File.app Font Converter.

Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή

Τα προγράμματα περιήγησης ιστού αναλύουν τα αρχεία WOFF που μεταφορτώνονται από μη αξιόπιστους τομείς ιστού χρησιμοποιώντας το OpenType Sanitizer (OTS) για τον αποκλεισμό κακόβουλων δεδομένων εκμετάλλευσης.

Γνωστά διανύσματα επίθεσης

  • Υπέρβαση ορίων μνήμης (buffer over-read) κατά την αποσυμπίεση zlib τμημάτων πίνακα γραμματοσειρών.
  • Ασύμφωνα πεδία μήκους πίνακα που προκαλούν υπερχειλίσεις μνήμης σωρού (heap buffer overflows) στις μηχανές απόδοσης γραμματοσειρών.
  • Άρνηση εξυπηρέτησης (Denial of Service) μέσω εξάντλησης μνήμης κατά την επέκταση του πίνακα γραμματοσειρών.

Βέλτιστες αμυντικές πρακτικές: Να καθαρίζετε πάντα τα ληφθέντα αρχεία WOFF με το OTS πριν τα περάσετε στις μηχανές γραμματοσειρών του λειτουργικού συστήματος.

Ιστορική Αναδρομή & Ορόσημα

2018Αντικαταστάθηκε από το WOFF2 ως το προτιμώμενο πρότυπο γραμματοσειρών ιστού λόγω της ανώτερης συμπίεσης Brotli.
2012Το W3C δημοσιεύει επίσημα το WOFF 1.0 ως επίσημη Σύσταση Προτύπου Ιστού.
2009Οι Henrik Rydgård, Tal Leming και Jonathan Kew συντάσσουν την προδιαγραφή WOFF για να αντιμετωπίσουν ζητήματα αδειοδότησης γραμματοσειρών ιστού.

Κύρια Πλεονεκτήματα

  • Μπορεί να μειώσει το μέγεθος αρχείων γραμματοσειρών ιστού σε σύγκριση με ακατέργαστα αρχεία TTF ή OTF· η μείωση εξαρτάται από τη γραμματοσειρά και τον κωδικοποιητή.
  • Το WOFF υποστηρίζεται από πολλά προγράμματα περιήγησης, συμπεριλαμβανομένων παλαιότερων εκδόσεων· η συμβατότητα εξαρτάται από την έκδοση του προγράμματος περιήγησης και την πλατφόρμα.
  • Περιλαμβάνει ένα προαιρετικό μπλοκ μεταδεδομένων XML για την αδειοδότηση γραμματοσειρών, τις πιστώσεις δημιουργών και τις πληροφορίες πνευματικών δικαιωμάτων του τυπογραφείου.

Τεχνικοί Περιορισμοί & Μειονεκτήματα

  • Σε πολλές ροές εργασίας ιστού έχει αντικατασταθεί από το WOFF2, το οποίο χρησιμοποιεί συμπίεση Brotli και μετασχηματισμούς πινάκων γραμματοσειρών· η εξοικονόμηση μεγέθους αρχείου διαφέρει.
  • Δεν μπορεί να εγκατασταθεί απευθείας σε λειτουργικά συστήματα επιτραπέζιων υπολογιστών (Windows/Mac) χωρίς μετατροπή σε TTF/OTF.
  • Ο παλαιότερος αλγόριθμος συμπίεσης zlib είναι λιγότερο αποτελεσματικός από τους σύγχρονους κωδικοποιητές εντροπίας.

Ενδιαφέροντα Τεχνικά Στοιχεία

  • Τα μαγικά byte για το WOFF 1.0 είναι 'wOFF' (0x77 0x4F 0x46 0x46), ενώ το WOFF 2.0 χρησιμοποιεί το 'wOF2'.
  • Τα χυτήρια τύπου συμφώνησαν να επιτρέψουν τις γραμματοσειρές τους στον ιστό μόνο αφού δημιουργήθηκε το WOFF, επειδή ο εξειδικευμένος περιέκτης του διέκρινε τις γραμματοσειρές ιστού από τις επιτραπέζιες γραμματοσειρές που μπορούσαν να αντιγραφούν παράνομα.
  • Το WOFF εφαρμόστηκε αρχικά στον Firefox 3.6 το 2010 προτού γίνει επίσημη σύσταση του W3C.

Συχνές Τεχνικές Ερωτήσεις

Ποια είναι η διαφορά μεταξύ WOFF και WOFF2;

Το WOFF χρησιμοποιεί συμπίεση zlib, ενώ το WOFF2 χρησιμοποιεί συμπίεση Brotli και μετασχηματισμούς πινάκων γραμματοσειρών. Η διαφορά στο μέγεθος του αρχείου εξαρτάται από τη γραμματοσειρά και τον κωδικοποιητή.

Πώς μπορώ να μετατρέψω μια γραμματοσειρά WOFF σε TTF ή OTF για χρήση σε επιτραπέζιο υπολογιστή;

Μπορείτε να μετατρέψετε αρχεία WOFF σε εγκαταστάσιμες γραμματοσειρές επιτραπέζιου υπολογιστή TTF ή OTF μέσα σε λίγα δευτερόλεπτα χρησιμοποιώντας το File2File.app απευθείας στο πρόγραμμα περιήγησής σας.

Χρειάζομαι ακόμη το WOFF 1.0 σε σύγχρονους ιστότοπους;

Όχι. Όλα τα σύγχρονα προγράμματα περιήγησης υποστηρίζουν εγγενώς το WOFF2. Το WOFF 1.0 απαιτείται μόνο εάν πρέπει να υποστηρίξετε παρωχημένα προγράμματα περιήγησης παλαιού τύπου, όπως ο Internet Explorer.