Rzecz wyglądała banalnie: gdy wpisywałem adres bez "www", nic się nie ładowało. Dodając "www", czasem już dało się wejść i nawet popracować. Oczywiście nie mogło tak być dłużej, tym bardziej że się sami użytkownicy zaczęli dopytywać, co jest grane. Sprawdziłem dokładnie serwer wzdłuż i wszerz - wszystko po staremu. Nie było absolutnie nic, poza nazwą, co odróżniałoby tę jedną subdomenę od innych, działających. eXtreme wtedy zanurkował w kod, korzystając z informacji użytkowników z forum. Okazało się, że:
- Najnowsza wersja ustawia kupę ciasteczek o nazwach pokroju NoMicrosoft, UseLinux, GetFirefox itd. :). Analiza wykazała, że one same nie były przyczyną kłopotów (i całe szczęscie, bo za taką propagadnę w publicznie dostępnym produkcie, to ja dziękuję. Jeśli już robić takie blokady, to przynajmniej tak, by nie blokowały wychwalanych produktów, tj. Linuksa, Firefoksa itd.)
- Flyspray za pomocą ciastka zapisuje również ID aktualnie przeglądanego projektu.
Fragmenty kodu wyglądają następująco:
// jaki projekt wybrano if (($project_id = Cookie::val('flyspray_project')) == '') { $project_id = $fs->prefs['default_project']; } $project_id = Req::val('project', Req::val('project_id', $project_id));
// propaganda $names = array( 'GetFirefox', 'UseLinux', 'NoMicrosoft', 'ThinkB4Replying', 'FreeSoftware', 'ReadTheFAQ', 'RTFM', 'VisitAU', 'SubliminalAdvertising', ); foreach ($names as $val) { session_name($val); session_start(); if (isset($_SESSION['SESSNAME'])) { $sessname = $_SESSION['SESSNAME']; break; } $_SESSION = array(); session_destroy(); setcookie(session_name(), '', time()-60, '/'); } if (empty($sessname)) { $rand_key = array_rand($names); $sessname = $names[$rand_key]; session_name($sessname); session_start(); $_SESSION['SESSNAME'] = $sessname; }
Całość przypomina wymyślny system zabezpieczenia sesji, tyle... że niedziałający. Parę losowych poprawek i wszystko się odblokowało, lecz najgorsze jest to, że nie wiemy, DLACZEGO. Pozostaje ponadto pytanie, czy w ten sposób nie wyłączyliśmy zabezpieczeń przed kradzieżą sesji, co w przyszłości mogłoby być dość przykre w skutkach. Jeżeli tak właśnie jest, konieczne jest napisanie własnego systemu zabezpieczeń.
Flyspray spłatał nam niemiłego psikusa. Problemu nie usuwa nawet nowe wydanie, a na forum projektu ani widu, ani słychu o podobnych zachowaniach. Cóż, wychodząc z założenia, że nie ma dwóch identycznych komputerów, mogliśmy akurat trafić na ten super-felerny przypadek.
















Napisał Nowaker w poniedziałek, 14 kwietnia 2008 o 21:07
Coś Ci się Zyx popsuło we wpisie, bo tekst wyłazi jakoś poza...