Flyspray

Christian Kruse

Im Zuge der Umbauarbeiten bei WWWTech.de wurden auch die Flyspray-Inhalte (hier absichtlich nicht verlinkt) konvertiert nach Trac. Um den Umzug abzuschließen, habe ich dann einige Rewrite-Regeln erstellt, damit der Umzug für Nutzer möglichst transparent bleibt und Suchmaschinen-Links nicht auf einmal ins Leere gehen. Um diese Regeln zu testen, hab ich ein wenig mit cURL herumgespielt. Dabei heraus kam folgendes (wichtig noch: curl -I url zeigt einem die HTTP-Header an, die für diesen Request ausgeliefert werden):

ckruse@sunshine ~ $ curl -I 'http://wwwtech.de/flyspray/'  HTTP/1.1 200 OK                                            Date: Fri, 06 Feb 2009 22:00:20 GMT                        Server: Apache                                             X-Powered-By: PHP/5.2.8-pl2-gentoo                         Expires: -1                                                Pragma: no-cache                                           Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0  Content-Style-Type: text/css                                         Set-Cookie: GetFirefox=06845ec23dc05585defe4935352ef29e; path=/; HttpOnly  Set-Cookie: GetFirefox=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/  Set-Cookie: UseLinux=2ec78337ec962624563902bacb235c95; path=/; HttpOnly        Set-Cookie: UseLinux=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/    Set-Cookie: NoMicrosoft=8b6c6ee2b2a6147a907052a24936a705; path=/; HttpOnly     Set-Cookie: NoMicrosoft=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/  Set-Cookie: ThinkB4Replying=9e389d26b57a3b3b2f1fe32b96be74e0; path=/; HttpOnly  Set-Cookie: ThinkB4Replying=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/  Set-Cookie: FreeSoftware=4ec4389029e1280490a8050a139b139d; path=/; HttpOnly         Set-Cookie: FreeSoftware=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/     Set-Cookie: ReadTheFAQ=44c4c0493b715a3abdd5f325328920ca; path=/; HttpOnly           Set-Cookie: ReadTheFAQ=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/       Set-Cookie: RTFM=e95c69683658eef4519c71cb574a1fe3; path=/; HttpOnly                 Set-Cookie: RTFM=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/             Set-Cookie: VisitAU=95f55f196bc031b9f7f0987e553455f9; path=/; HttpOnly              Set-Cookie: VisitAU=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/          Set-Cookie: SubliminalAdvertising=2930b4ddce2de82aed6145e344cbd90f; path=/; HttpOnly  Set-Cookie: SubliminalAdvertising=deleted; expires=Thu, 07-Feb-2008 22:00:20 GMT; path=/  Set-Cookie: NoMicrosoft=8a9d9dbadd64136b0628e405efeb1eac; path=/; HttpOnly                Set-Cookie: flyspray_project=1; expires=Sun, 08-Mar-2009 22:00:21 GMT; path=/flyspray/    X-Pavatar: http://www.defunced.de/pavatar.png  Content-Type: text/html; charset=utf-8    ckruse@sunshine ~ $

Nach näherer Recherche ist mir dann folgende Passage im Code von includes/class.flyspray.php aufgefallen:

   718         $names = array( 'GetFirefox',   719                         'UseLinux',   720                         'NoMicrosoft',   721                         'ThinkB4Replying',   722                         'FreeSoftware',   723                         'ReadTheFAQ',   724                         'RTFM',   725                         'VisitAU',   726                         'SubliminalAdvertising',   727                       );   728   729         foreach ($names as $val)   730         {   731             session_name($val);   732             session_start();   733   734             if (isset($_SESSION['SESSNAME']))   735             {   736                 $sessname = $_SESSION['SESSNAME'];   737                 break;   738             }   739   740             $_SESSION = array();   741             session_destroy();   742             setcookie(session_name(), '', time()-60, '/');   743         }  

Das Code-Stück macht im Wesentlichen folgendes: es geht durch die oben definierten Wörter (GetFirefox, UseLinux, etc, pp) und setzt für jedes dieser Wörter einen Cookie mit dem Wort als Cookie-Name und der Session-ID als Cookie-Wert. Glatt ein Fall für Daily WTF... Sinnlosigkeit kennt eben keine Grenzen.

Gut, dass ich von der Software weg komme, hehe.