Home // 2010 // Januar
image_pdfimage_print

Multipart ZIP Archive unter Linux öffnen.

Eigentlich ist das splitten von grossen Archiven eine ganz praktische Sache. Man kann dadurch grosse Archive in kleinere Häppchen schneiden. z.B. haben viele Mailserver eine Dateianhang Begrenzung von 10 MB. Hat man ein Paket das 16MB gross ist packt man es einfach nochmals neu, stellt aber ein, dass z.B. zwei 8MB Archive erzeugt werden. Der Empfänger speichert dann einfach beide Dateianhänge im selben Verzeichnis ab und kann diese wieder entpacken.

Soweit die Theorie. Leider musste ich feststellen, dass Multipart ZIP Archive doch einige Probleme bereiten können. Gerade bei Benutzern welche auf freie Alternativprodukte setzen, sei es nun unter Windows oder Linux, kommt es beim entpacken der Archive zu Problemen. So unterstützt z.B. 7-zip keine Multipart Archive. Und auch unter Linux heisst es in der Manpage von unzip:

[...]
BUGS
       Multi-part archives are not yet supported, except in  conjunction  with
       zip.  (All parts must be concatenated together in order, and then ''zip
       -F'' (for zip 2.x) or ''zip -FF'' (for zip 3.x) must  be  performed  on
       the  concatenated  archive  in  order to ''fix'' it.  Also, zip 3.0 and
       later can combine multi-part (split) archives into a  combined  single-
       file  archive using ''zip -s- inarchive -O outarchive''.
[...]

Schlussendlich hat bei mir die Variante funktioniert, welche ganz am Schluss der Manpage angegeben wird.

zip -s- archivname.zip -O archiv.zip
unzip archiv.zip

Das nächste mal produziere ich einfach weniger Daten 😉

WordPress Metainformationen entfernen

WordPress produziert eine Menge an Quellcode (Firefox/Opera: CTRL-U, IEX: Ansicht / Quelle) um einen Blog wie diesen darstellen zu können. Das meiste davon wird natürlich benötigt, damit die Webseite schön Fancy im Web 2.0 daherkommen kann. Es gibt aber auch Informationen im Quelltext die man vielleicht gar nicht braucht oder die sogar Crackern in die Hände spielen.

Auf drei solcher Einträge gehe ich jetzt näher ein.

Really Simple Discovery Informationen

<link rel="EditURI" type="application/rsd+xml" title="RSD"
href="http://blog.matse.ch/xmlrpc.php?rsd" />

Hinter der RSD (Really Simple Discovery) Funktion versteckt sich ein XML Format und eine Veröffentlichungskonvention um z.B. Blogs via Client Programmen befüllen zu können. So gibt es z.B. Programme wie BlogDesk, welche es ermöglichen einen Beitrag für z.B. WordPress Offline, in einem Programm auf dem Computer zu erstellen und später zu veröffentlichen. Das Protokoll stammt aus dem Jahr 2002 als die Bandbreiten noch klein, Flatrates kaum und Web 2.0 noch unbekannt waren. Zu dieser Zeit mussten Blogeinträge noch mit HTML Code versehen werden und waren somit – für Laien – relativ unübersichtlich zu erstellen.

Heutzutage ist es jedoch mittels CSS und JavaScript möglich einen Webbasierten WYSIWYG (What you see is what you get) Editor zu verwenden, welcher ganz normalen Menschen das Erstellen von ansprechenden Artikeln ermöglicht. Und da die Geschwindigkeit und ständige Internetverbundenheit in den technisierten Regionen der Erde kaum mehr ein Problem darstellen, haben Programme mit RSD Unterstützung an  Bedeutung verloren.

Wer also bisher nicht einmal von RSD wusste und auch in Zukunft keines dieser Programme verwenden will, kann diese Informationen in WordPress unterdrücken. Wie das geht erläutere ich weiter unten.

Windows Live Writer

< link rel="wlwmanifest" type="application/wlwmanifest+xml"
href="http://blog.matse.ch/wp-includes/wlwmanifest.xml" />

Windows Live Writer ist das selbe Konzept wie RSD, jedoch von Microsoft. Mittels der Software kann man ebenfalls seinen Blog Offline mit Inhalten befüllen.

Wer den Dienst bisher nie in Anspruch genommen hat und dies auch in naher Zukunft nicht vor hat, der kann diese Information ebenfalls unterdrücken.

WordPress Version

<meta name="generator" content="WordPress 1.2.3" />

Mittels dieser Metainformation kann man als Blogleser in Erfahrung bringen, mit welcher WordPress Version gearbeitet wird. Das ist im Normalfalls jedoch absolut irrelevant, da den Besucher nicht die Technologie hinter dem Blog sondern der Inhalt interessiert. Und die Besucher welche sich für die Version interessieren sind zu 95% unerwünschte Besucher. Denn als „pöser Bube“ will ich wissen ob die WordPress Version veraltet ist und es hierzu offene Sicherheitslücken gibt. Und dank Google und Meta Tags, kann man hierzu einfach die Webseiten auflisten, welche mit der spezifischen Version laufen. Unterdrückt man diese Information muss ein potenzieller „pöser Bube“ anderweitig Vorgehen um herauszufinden ob der Blog Verwundbar ist. Da heutzutage aber meistens eh nur – schlecht – automatisierte Engines nach genau solchen Informationen suchen kann es sogar passieren, dass man trotz veralteter Version und offenem Sicherheitsloch nicht angegriffen wird, weil die Engine schlicht keinen Anhaltspunkt dazu gefunden hat. Auch eine Art Cracker abzuwehren.

Unterdrücken der Informationen

Um nun einen oder allen der oben genannten Metainformationen zu unterdrücken, muss man die Datei functions.php in seinem WordPress Theme suchen und editieren. In einer normalen WordPress Installation befindet sich diese Datei normalerweise im WordPress Verzeichnis unter folgendem Pfad:

<Wordpress Verzeichnis>/wp-content/themes/<Themenname>/functions.php

Idealerweise fügt man direkt am Beginn der Datei (unterhalb von <?php) die ensprechenden Unterdrückungen ein.

/** Fuer Really Simple Discovery Unterdrueckung */
remove_action('wp_head', 'rsd_link');

/** Fuer Windows Live Writer Unterdrueckung  */
remove_action('wp_head', 'wlwmanifest_link');

/** Fuer WordPress Versionsunterdrueckung */
remove_action('wp_head', 'wp_generator');

Lädt man seinen Blog danach neu, sind diese Informationen verschwunden. Leider muss man sich hierbei bewusst sein, dass bei einem Update des Themes die Einträge jeweils neu erstellt werden müssen, da die functions Datei dann erneut überschrieben wird. Da Themes jedoch selten Updates erfahren ist dieser Aufwand – meiner Meinung nach – vernachlässigbar.