Category Archives: cms

Bezpieczna Joomla 1.5.x

Z okazji przypadającego dziś Dnia Bezpiecznego Internetu, o którym pisano na DI nie będę reklamował (mniejsza o to czy zgodnie z kodeksem blogerów czy nie) żadnego “bezpiecznego” programu antywirusowego, ale napiszę nieco o Joomli, jednym z moich ulubionych cmsów obok wordpressa. Napiszę też o paru trikach na poprawę jego bezpieczeństwa, choć wielu mogą się wydać one “oczywistą oczywistością” (ale o tym na końcu).

O tym, że nie ma idealnych systemów chyba wie każdy. Mnie to mówiono na studiach, pisano o tym w książkach i w sieci.

“Integracja cały czas trwa, bo nie jest to projekt, który można by zwyczajnie zakończyć. Jest ona potrzebna, bowiem nie ma idealnych systemów, są tylko najlepsze rozwiązania dziedzinowe” – mówi Bożena Małczak-Koziarska. Te zaś trzeba ze sobą łączyć, co, jak przyznaje Bożena Małczak-Koziarska, nie zawsze jest łatwym zadaniem, ale nigdy nie jest tak, by jakiegoś systemu w ogóle nie dało się połączyć z pozostałymi.

Ot, mały cytat stąd, żeby nie być gołosłownym ;)

Było też wiele wojen (słownych) między miłośnikami Windowsa i Linuxa jeśli chodzi o systemy operacyjne, a na GoldenLine.pl dyskutowano nad wyższości jednych nad innymi systemami cms. Zostańmy przy systemach CMS, by nie zagłębiać się nadto w inne typy/rodzaje/kategorie systemów.

Kilka lat temu (coś koło roku 2004 lub2005) jak pierwszy raz zetknąłem się z Mambo (a później Joomlą), nie miałem pojęcia, że ten CMS uprzyjemni mi życie i że stanę się jednym z maniaków tej Joomlowej społeczności, spędzającym wiele godzin na instalacji i testach nowych wersji systemu oraz rozszerzeń, czy modyfikacji dodatków.  Przez ten czas przybyło jakże ciekawych doświadczeń i ponad 1GB plików na dysku z kolejnymi wersjami i rozszerzeniami. A Czy ktoś włamał się na Twoją Joomlę? Kilka razy słyszałem to pytanie, a dwa razy miałem “przygodę” z włamaniem przez tureckich hakerów (Script kiddie):

  • jedna ze stron, którą przejąłem w spadku była postawiona na bodajże Mambo 4.5.1 (początek grudnia 2006)
  • druga na J! 1.5.0 ale po instalacji i wgraniu indywidualnie przygotowywanej templatki oddałem w cudze ręce, które nie zadbały o aktualizacje (początek grudnia 2008)

Poza własnymi doświadczeniami o włamaniach (i wadliwej Joomli) spotkałem się nie raz czy to na różnych blogach czy w Dzienniku Internautów (Shakowana strona joomla.org – zrzut by ‘krecik’). Pamiętajmy, że nie tylko na Joomlę można się włamać. Także WordPress jest podatny na włamania (vide: antyweb zhakierowany), a inne systemy także wymagają aktualizacji z powodu luk w zabezpieczeniach: Contenido, Drupal, Typo3. Głośna w 2008 roku była sprawa wycieku danych z PKO SA, za sprawą źle zabezpieczonego folderu na serwerze. Mnie kiedyś też udało się odkryć jedną podobne zaniedbanie w serwisie jednego klienta Agencji Interaktywnej. Tylko zamiast  wpisu na wykopie czy blogu (jak Kminek) wysłałem mail z informacją do pracownika Agencji (było warto, po jakimś czasie zaproponowano mi spotkanie w sprawie pracy). Praktyka pokazuje jak widać różne przypadki od włamań przez ludzkie zaniedbania i błędy.

Zainteresowanie nowym Joomla! ze strony krakerów jest zrozumiałe – popularny, najczęściej stosowany, łatwy w zarządzaniu, a przy tym jeszcze ubiega się o honory i najwyższe oceny w rankingach.
Doświadczenie z Joomla 1.0 pokazuje, że nawet wiele lat pracy nad systemem (początki sięgają wszak 2001 roku) nie chroni przed lukami w bezpieczeństwie. Jeszcze w ostatniej wersji 1.0.15 eliminowano różne usterki w tej mierze. Stabilną wersję Joomla 1.5 wydano w styczniu, mamy wrzesień – ukazało się kolejnych 6 poprawionych wydań. Coraz doskonalszych, ale przecież nie doskonałych!

Niefrasobliwość administratorów? Owszem, mamy z nią często do czynienia, ale też nie wszystko od nich zależy. Po pierwsze, ochrona serwisów to także zadanie administracji serwerów!

(źródło: Dziennik Internautów)

Niefrasobliwość administratorów” to dobre określenie. Pamiętajmy, że na Joomli stronę postawić i skonfigurować jest łatwiej (niż np. Drupalu) a poza osobami “siedzącymi w temacie” biorą się za to osoby, które poczytali trochę w sieci (omijając zapewne wskazówki z pomocy Joomli10 najgłupszych tricków administratora Joomla) i wydaje im się, że jak strona działa można spocząć na laurach.

O sposobach na zabezpieczenie Joomli pisano już wiele razy, więc “Ameryki nie odkryję”.

Mogę jedynie wskazać te oczywiste, najważniejsze:

  • register_globals is off
  • safe_mode is off
  • zmieniona login użytkownika (Super Administratora) ‘admin’ na jakiś inny
  • zabezpieczony hasłem katalog ‘administrator’
  • nie zapisywalny plik configuration.php
  • dobrze ustawione uprawnienia dla katalogów i plików
  • aktualizacje systemu, jeśli wyjdą nowe wersje
  • robienie kopii plików (np. raz na tydzień w zależności jak często aktualizujemy nasz serwis) i zrzutów bazy (np. przy pomocy LazyBackup – i możemy spać spokojnie ;) )

Do wykonania większości z powyższego wykazu z pomocą może nam przyjść Komponent GuardXT (wydany w styczniu 2009, więc całkiem świeżutki), dzięki któremu uda nam się ustawić powyższe.

GuardXT w akcji

GuardXT w akcji na jednej z moich stron

Po zainstalowaniu rozszerzenia, przy 20 pozycji z listy powinniśmy mieć zapalone zielone światło. Jeśli przy którymś z elementów świeci się nam czerwona “lampka”, możemy użyć konfiguratora, lub ręcznie wykonać właściwą operację: wgrać odpowiedni plik (np. .htaccess) albo zmienić kilka linijek w php.ini (a jeśli nie mamy do tego pliku dostępu: napisać “ładny mail”;P do administratora serwera).

Dopisek #1:

Dodatek testowałem na J! 1.5.9, na serwerze nazwa.pl, na którym czerwona “lampka” pali mi się przy “Initial run not yet executed”, niestety mimo prób przez ten etap nie mogę przejść, może ma ktoś jakiś pomysł, bo nie chce mi się już ślęczeć po nocy ;)

Dopisek #2

W związku z paniką jaką sieją co niektórzy na forach, to do sposobów zabezpieczeń, przed hakerami, botami zamieniającymi pliki index.php możnaby jeszcze dopisać:

  • blokowanie IP

W sumie sprawa prosta, bo albo instalujemy dodatek Ban IP Address i wpisujemy sami adresy IP do blokowania (takie listy znajdziemy np na exinfm.com, lub chongqed.org albo umieszczamy gotowy .htaccess w katalogu głównym z Joomlą. Można też posłużyć się skryptem, który będzie codziennie aktualizował plik z listą adresów IP.

Inspiracja dla projektantów stron

Już nie raz pytano mnie gdzie szukać natchnienia, skąd czerpać pomysły na wygląd stron.
Eleganckie, schludne projekty, optymalnie skrojone? Ładne strony, przykuwające uwagę, dostosowane pod każdą przeglądarkę, bez wysypujących się błędów jak np. http://zlastrona.org/?
Tak! :)

Stron będących skarbnicami przykładów jest wiele. Przedstawię dziś najciekawsze z nich, do których czasem wracam.

Ostatnio natknąłem się też na listę 60 eleganckich projektów zebranych przez Smashing Magazine. Nic tylko oglądać,

Użyteczne menu nawigacyjne

Ostatnio różne zagłębiam się w ciekawe toerie przedstawione w dyskusjach i interesujących artykułach na temat użytecznej nawigacji na stronach. Pomińmy standardowe menu poziome u góry strony i zajmijmy się menu bocznym. Niby “właściwie” nie ma znaczenia czy menu nawigacyjne strony będzie z prawej strony czy z lewej, ale czy aby na pewno? Czytamy od lewej do prawej, więc lewy górny róg ekranu jest przeważnie miejscem, w które automatycznie kierujemy wzrok. Nie ulega też wątpliwości fakt, że oglądając setki, czy może tysiące stron i przyzwyczajamy się do nawigacji poszczególnych serwisów, i jak ostatnio można przeczytać, że radykalne zmiany mogą powodować zagubienie na stronie i uczenie się jej na nowo. Użytkownicy komputerów przeze wiele lat przyzwyczaili się też do umiejscowienia przycisku start i rozłożenia ikon na pulpicie w Windowsie czy Linuksie (zresztą to też zależy od dystrybucji i preferencji samego użytkownika), które w większości standardowo umiejscowione są z lewej strony. Wyniki wyszukiwania w najpopularniejszej wyszukiwarce, ukazujące się z lewej strony to można by rzec kanon. Jak pokazują badania z wykorzystaniem urządzeń do eyetrackingu, “czytanie stron internetowych zależne jest od układu treści! Googlowy background knowledge dla strony o układzie innym niż google, nie powoduje żadnej dodatkowej komplikacji – jeśli tylko układ strony jest przejrzysty.” Jak czytamy dalej w artykule “Herezje: menu prawokolumnowe“: “Czyta się więc stronę w układzie kolumnowym – jak gazetę. Zupełnie inaczej, niż strony z menu bocznymi, gdzie nawigacja tworzy pewną hierarchię względem treści zasadniczej.” Obserwuję si ciekawością jak się dyskusja rozwinie. W międzyczasie jeszcze zgłębiam Optymalizację funkcjonalności serwisów internetowych (J.Nielsen, H. Loranger), więc pewnie jeszcze wrócę do tego tematu.

Dodam jeszcze, że zauważyłem specyficzny fakt dla jednych z najpopularniejszych opensourceowych CMS’ów. Mianowicie WordPress i Joomla mają charakterystyczny dla siebie układ. W WordPressie i innych podobnych systemach blogowych (blox.pl, blogspot.com itd.) menu przeważnie jest umieszczone z prawej strony, a w Joomli czy Drupalu jest odwrotnie. Są oczywiście wyjątki i przypadki, gdy taki układ nie jest zachowany (kwestia szablonu), ale w większości przypadków specyfika serwisów i ich zawartość najwidoczniej narzuca taki układ.

Na zakończenie jeszcze fajny przykład nieużytecznego menu, jakie miałem okazję widzieć:

CSS

Jak widać na załączonym obrazku nawigacja wymagająca gimnastyki. Lubię poruszać głową, ale bez przesady ;) )

W wolnej chwili napisałem do Bartka Juszczyka (Agencja adweb.pl) i zasugerowałem zmiany tego kreatywnego, dość niekonwencjonalnego pomysłu. Przypuszczam, że poza moją wiadomością pojawiły się jeszcze podobne głosy w tej sprawie.

Wczorajszego dnia zobaczyłem już poprawione menu:

CSS

Zatem menu już więcej nie przysporzy gimnastyki użytkownikom serwisu. Możnaby rzec: kolejna strona do kolekcji, w której miałem wpływ na “oblicze Internetu” :)

Highslide for Wordpress Plugin