veröffentlicht am

Atom-Feed mittels apache und dem HTTP-Header Content-Disposition:attachment ausliefern

Ich lese derzeit Tangled Web, ein meiner Meinung nach must-read für alle Webentwickler und für alle anderen die Interesse an Web- bzw. Browsersecurity haben. Nach dem Kapitel über XML und die ganzen Formate die zwar auf XML aufbauen, potentiell aber falsch vom Browser interpretiert werden habe ich mich entschlossen, der Empfehlung des Buches zu folgen und meinen Atom-Feed nicht mehr normal auszuliefern (Und der Browser rendert dann die Rohansicht), sondern den Content-Disposition HTTP-Header auf attachment zu setzen. Dies bewirkt, dass der Browser die Datei sofort herunter lädt anstatt eine Vorschau anzuzeigen.

Dafür wird folgender zusätzlicher Eintrag in der .htaccess benötigt:

<Files "atom.xml">                                                                                  
 Header set Content-Disposition: attachment;                                                         
</Files> 

Man kann nach wie vor den Link zum Feed über einen Rechtsklick auf den Link kopieren und dann im Feedreader einfügen, dadurch dass der Browser jedoch den Feed nicht mehr rendert verringert sich die Gefahr, dass ein Angreifer (oder ich) Code ins XML einschleust, der dann ausgeführt wird. Zugegeben, das ist bei meiner statischen Seite höchst unwahrscheinlich, in meinen Augen aber kein wirklich guter Grund sich nicht an best practices zu halten.

Sollte der zusätzliche HTTP-Header bei irgendeinem Feed-Reader zu Problemen führen würde ich mich über einen Hinweis freuen. Das sollte nämlich nicht passieren und ist vermutlich ein Bug im Feedreader.