Co trzeba sprawdzić uruchamiając stronę
Każdy dobry developer powinien mieć listę rzeczy, które należy sprawdzić podczas uruchamiania strony już na serwerze docelowym. Jesteśmy tylko ludźmi i zdarza nam się zapominać.
Jeśli korzystasz z jakiegoś oprogramowania do zarządzania projektami lub prostej aplikacji todo, zapewne jest tam jakiś sposób na zdefiniowanie takiej listy. Mam nadzieję, że ten post pomoże Ci w jakiś sposób. Wiem, że część tych zadań powinno się wykonywać podczas kodowania, ale podwójne (potrójne) sprawdzenie jest dobrym nawykiem. Podzieliłam zadania na kategorie dla lepszego zrozumienia.
BEZPIECZEŃSTWO
Zaczynam od tego, ponieważ zadania z tej kategorii są często pomijane. W szczególności przy małych stronach. Polegamy na naszym kodzie, ustawieniach serwera itd – co nie jest dobre. Nie ufaj nikomu. Gdy pracujemy z różnymi klienta, pracujemy też z różnymi serwerami, frameworkami. Nie powinniśmy być pewni niczego. Nie jest łatwo dokładnie przetestować stronę gdy nie mamy dedykowanego zespołu, ale możemy, powinniśmy zrobić cokolwiek.
- Usuń folder instalacyjny – jeśli wykorzystałeś projekt open source lub cms, prawdopodobnie był tam krok z instalacją. Musisz usunąć ten folder.
- Wyłącz listowanie folderów (directory listing) – możesz to zrobić poprzez .htaccess i Options -Indexes
- Zablokuj dostęp do plików do których nie musi być dostępu poprzez przeglądarkę – jak pliki frameworka/cmsa
- Wyłącz wyświetlanie błędów/informacje debuggera
- Sprawdź stronę błędu 404
- Sprawdź czy walidacja formularza działa po stronie serwera – nie powinieneś polegać na walidacji JavaScriptu czy HTML5
- Jak tam XSS?
- Jak tam SQL Injection?
- Jak tam code injection?
Mogłabym tak dalej z podatnościami, ale jest to jakiś start. Jeśli chcesz wiedzieć więcej, powinieneś zacząć od strony OWASP.
Przy okazji – jest to bardziej do backednu i nie powinno być brane pod uwagę na koniec, ale dodatkowe sprawdzenie nikogo nie zaboli – hasła powinny być mocne i haszowane w bazie.
WYDAJNOŚĆ
Dobrym miejscem na start jest googlowy PageSpeed Insights, gdzie możesz przetestować swoją stronę przeciwko dobrym praktykom, ale wszystko sprowadza się do:
- Minify JS – powinieneś korzystać z wersji developerskiej (nie skompresowanej) w trakcie kodowania, a zminimalizowanej wersji (skompresowanej) na produkcji. Jest wiele narzędzi online jak jscompress, javascript compressor.
- Minify CSS – jak wyżej. Jeśli używasz SASS (lub LESS) możesz zdefiniować aby pliki były kompilowane już w wersji skompresowanej. Jeśli nie, do tego też są dostępne narzędzia online CSS compressor.
- Połącz pliki JS/CSS – wiele plików JS i CSS może nas trochę zaboleć. Po prostu połącz je w 1 (lub 2 jeśli masz ich aż tyyyle). Szybsze jest wykonanie 1 zapytania niż 10.
- Przenieś JavaScript do stopki – oczywiście nie HTML5 shiv.
- Włącz kompresję – większość serwerów pozwala włączyć kompresję gzip. Możesz to zrobić poprzez .htaccess. Jeśli z jakiegoś powodu serwer nie pozwala na to, możesz zawsze sam skompresować pliki, załadować na serwer i utworzyć odpowiednie reguły w .htaccess.
- Włącz cache – powinno to być ostatnie zadanie. Kiedy wszystkie pliki CSS, JS będą całkowicie wolne od błędów (lub bardzo blisko, bo zazwyczaj nigdy nie jest kod wolny od błędów ;o)) i wszystkie zasoby, jak obrazy i fonty mają finalną wersję.
SEO
Co prawda SEO opiera się głównie na treści, powinniśmy sprawdzić/zrobić kilka rzeczy:
- robots.txt – sprawdź czy Allow/Disallow są ustawione prawidłowo
- <meta name=”robots”> – upewnij się, że NIE MA „noindex, nofollow” (chyba, że nie chcesz aby strona była indeksowana).
- Zdecyduj czy strona ma działa z www czy bez www i zrób odpowiednie przekierowanie – dla istniejącyh stron sprawdź jak jest zindeksowana i na tej podstawie zrób odpowiednie przekierowanie. Jeśli jest to nowa strona, to zależy od preferencji – ja zawsze wybieram bez www.
- Sitemap.xml obecna/dostępna/prawidłowa?
- Czy <title> jest obecny i unikalny na każdej podstronie?
- Czy alt=”” jest obecny dla obrazków?
- Analytics – bądźmy uczciwi, nieważne co użyjesz (google analytics, piwik czy cokolwiek) coś na pewno.
JAKOŚĆ/INNE
- Sprawdź błędy walidacji.
- Sprawdź błędy i ostrzeżenia JavaScriptu – jest coś takiego jako “konsola” w przeglądarce.
- HTML5 shiv – jeśli nie używać wykrywania funkcji nie musisz używać całej biblioteki Modernizr (świetna biblioteka).
- Touch friendly – nawet jeśli twoja strona nie jest responsywna, niektórzy użytkownicy mogą odwiedzić stronę poprzez urządzenie z ekranem dotykowym.
- Sprawdź przeglądarki – jeśli chcesz prawidłowo przetestować IE8, powinieneś zrobić to na wirtualnej maszynie na prawdziwym IE8 a nie emulatorze.
- Usuń komentarze – jeśli skompresowałeś JS lub CSS, kompilator zrobi to za ciebie. Upewnij się czy zabawne komentarzy czy notatki zostały usunięte ze źródła htmla.
Jeśli myślisz, że coś jeszcze powinno się znaleźć na tej liście, daj znać w komentarzu :o)