Code-Werkzeuge
Diese drei Werkzeuge parsen Ihren Quelltext, schreiben ihn um und geben ihn wieder aus. Was sie nie tun: ihn ausführen. Auf diesem Unterschied beruht hier das gesamte Sicherheitsmodell, und er ist im Code durchgesetzt, statt in einem Satz versprochen.
Beliebte Werkzeuge
Ihr Code wird geparst, nie ausgeführt
Ein Minifizierer muss Ihren Quelltext verstehen, ihn also in einen Syntaxbaum zerlegen und diesen Baum wieder ausgeben. Auswerten muss er dabei nichts, und dieser hier tut es auch nicht: kein eval, kein dynamisches Function, keine Vorschau, die Ihr Skript ausführt.
Am meisten zählt das bei SVG. Ein SVG ist ein ausführbares Dokument – es kann Skripte, Event-Handler und javascript:-URLs mitbringen. Jedes davon wird entfernt, und zwar zweimal: einmal durch die Regel des Optimierers selbst und ein zweites Mal durch einen unabhängigen Durchgang danach, denn ein einzelner Filter mit einem einzelnen Fehler ist kein Sicherheitsmodell.
Was Minifizierung tatsächlich einspart
Leerraum zu entfernen und lokale Namen zu kürzen nimmt rohem Quelltext typischerweise ein Drittel ab. Der größere Teil des restlichen Gewinns kommt von der Komprimierung Ihres Servers, nicht vom Minifizierer – der realistische Vergleich ist also eine minifizierte und anschließend mit gzip komprimierte Datei, nicht die rohe Bytezahl.
Imports bleiben unangetastet
Ein @import in CSS bleibt als Text erhalten oder wird auf Wunsch entfernt. Verfolgt wird er nie: Abzurufen, worauf er zeigt, hieße, dass diese Seite in Ihrem Namen eine Anfrage zu einer Datei stellt, die Sie eingefügt haben – und die übrige Seite ist gerade so gebaut, dass sie genau das nicht tut.