Wskrzeszenie Legowiska

Opublikowany: 25-04-2015 21:47 przez Krystian

Po kilku długich miesiącach przerwy moja strona domowa wraca do świata żywych, albo jak kto woli do świata "up & running". Jeśli ktoś się zastanawia czemu zdecydowałem się czasowo wyłączyć stronę domową, to przyczyna była prozaiczna z mojego punktu widzenia. Można ją skrócić w sumie do jednego sformułowania: względy bezpieczeństwa.

 

Wróćmy jednak do początków. Mianowicie, poprzednia wersja strony została przeze mnie napisana jeszcze w pierwszej połowie 2011 w 100% w czystym php. Bez ORM'ów, frameworków i innych typowych dla developmentu aplikacji webowych dobrodziejstw. Ponieważ nie była oparta o Drupale, WordPressy i inne znane rozwiązania była odporna na randomowe ataki, które co jakiś czas w jej stronę były kierowane (zerkanie w logi dawało satysfakcję). Niestety, pomimo dokonania pewnych zabiegów technicznych nie byłem przekonany co do jej pełnego bezpieczeństwa. Ponieważ w lipcu udało mi się trafić do branży security to ewentualny deface i inne cyrki wyglądałyby mało profesjonalnie na mojej stronie domowej, więc postanowiłem ją tymczasowo wyłączyć.

 

Archaiczne z punktu widzenia doboru technologii rozwiązania użyte na starej stronie odstraszały mnie przed dodaniem nowych funkcjonalności. Połączenie tych dwóch faktów przywiodło mnie do koncepcji napisania strony od zera, z zachowaniem jedynie materiałów, które do tej pory, przez ponad 3 lata stworzyłem. W końcu to one stanowią wartość mojej strony. Decyzja o stworzeniu nowej wersji była wymarzoną okazją do przeprowadzenia wielu dodatkowych zmian. Jedna z nich to przejście z prostego hostingu w blink.pl na VPS w DigitalOcean (patrz dalej). Aktualna wersja, którą widzicie to dopiero wydanie rozwojowe, które ma mniej, więcej 40% tego co zaplanowałem. Mam ogromną ilość pomysłów na nowe funkcje. Chciałem również mocno zmodyfikować wygląd graficzny strony. Ze względu na ograniczone zasoby czasowe nowe elementy będą pojawiać się jednak powoli i stopniowo.

 

Jeśli chodzi o aspekty techniczne to witryna oparta jest oczywiście o php i framework Symfony2. Serwerem bazy danych jest MySQL, zaś całość stoi jak już wspomniałem na serwerze DigitalOcean, przy którym chciałem zatrzymać się na moment. Poprzednia wersja strony oraz sam hosting, na którym ona stała zbierały statystyki dotyczące odwiedzin. Na podstawie tych statystyk udało mi się wyliczyć przybliżoną ilość odwiedzin, która wychodziła (po odsianiu robocików z różnych portali) w okolicach tysiąca miesięcznie. Trudno się dziwić tej wartości, w końcu nie piszę o modzie i celebrytach (-; Doszedłem do wniosku, że przy takim obciążeniu najsłabsza wersja VPS z DigitalOcean powinna dać radę, a jeśli nie to w odpowiednim momencie przeskoczę na bardziej wypasioną pod względem zasobów wersję. Obecna posiada do dyspozycji jeden rdzeń Intel Xeon CPU E5-2650L v3 @ 1.80GHz i 512MB pamięci operacyjnej. Nie jest to wiele ale po zainstalowaniu niezbędnych paczek (m. in. php-fpm, nginx, mysql, git + inne mniej istotne narzędzia przydatne na serwerze) do Debiana i wykonaniu kilku optymalizacji w ich konfiguracji, całość zajmuje nieco ponad 400MB pamięci operacyjnej, co pozostawia całkiem przyjemną rezerwę dla obsługi nadchodzących requestów HTTP. Małe testy obciążeniowe jMeterem wykazały, że kilkudziesięciu klientów może jednocześnie na niej przebywać bez obniżenia czasu odpowiedzi na żądanie. W każdym razie nie jest to strona banku, a zwykły homepage, więc nie ma co przesadzać (-;

 

Co dalej? Po za tym, że w końcu będę mógł co pewien czas wrzucić tutaj news lub bardziej obszerny artykuł (mam kilka pomysłów, np. artykuł o analizie dynamicznej malware) planuję też dodać kolejne funkcje. W dalszej kolejności planuję też zmodyfikować wygląd strony oraz przygotować wersję angielską, ale obie te rzeczy pojawią się najwcześniej późną (i to bardzo) jesienią (-:

 

Jeśli ktoś się zastanawia czy może szukać dziur bezpieczeństwa na mojej stronie to udzielam na nie pozwolenia pod warunkiem, że zostanę poinformowany o szczegółach technicznych znalezionej podatności (w zamian mogę postawić piwo na którejś konferencji albo wysmarować laurkę). Kod źródłowy trzymam w repozytorium, baza danych jest regularnie backupowana, podobnie inne, towarzyszące witrynie pliki, więc nie ma stresu. Proszę tylko bez defaceów, DoSów i DDosów (-;

 

See ya soon, bro

 

 

Brak komentarzy