Bezpieczeństwo aplikacji internetowych

Blog Bezpieczeństwo aplikacji internetowych

Data

7 maja 2019

Kategoria

Developer

Tagi

Kluczowym aspektem, którym zajmują się twórcy aplikacji, jest oczywiście bezpieczeństwo. Czasem nawet niewielki błąd, luka popełniona na początku prac może przynieść katastrofalne skutki.

Jak tego unikać?

 

Po pierwsze należy upewnić się czy wszystkie nasze bazy danych są aktualne.

Co roku OWASP, grupa ekspertów ds. Bezpieczeństwa i badaczy, publikuje listę typowych zagrożeń dla aplikacji, na które należy zwrócić uwagę. Jednym z bardziej powszechnych problemów, które się tam znajdują, są powtarzalne luki. Wg opublikowanych raportów na ten temat, potwierdzono, że aż 70% popularnych apek korzysta z nieaktualnych składni i baz, co jest oczywiście proszeniem się o kłopoty.

 

Po drugie: Zbyt często aplikacje internetowe akceptują niemal wszystko, co użytkownik przesyła za pomocą formularza lub interfejsu API. Na przykład użytkownik może próbować utworzyć konto z hasłem zawierającym ponad tysiąc znaków. Gdy wysyłanych jest wiele takich żądań, możemy być prawie pewni, że nasz serwer prędzej czy później ulegnie awarii pod wpływem intensywnych obliczeń niezbędnych do ich zaszyfrowania.

Jednym ze sposobów na złagodzenie takich ataków jest wdrożenie ograniczeń na poziomie bazy danych. Kolumny powinny mieć zdefiniowany maksymalny rozmiar lub model danych nie powinien akceptować wartości NULL. Chociaż umieszczenie tych ograniczeń w bazie danych jest zawsze dobrym pomysłem, można je uznać za zbyt „niski poziom”, ponieważ pewne ataki można wykorzystać sprawiedliwie wcześniej w cyklu żądania.

 

Po trzecie: Potwierdzamy bezpieczne wyrażenia regularne.

Wyrażenia regularne są zarówno dobrodziejstwem, jak i przekleństwem dla każdego programisty. Mogą sprawić, że dopasowywanie wzorców na łańcuchach stanie się łatwym zadaniem, ale źle spreparowane wyrażenie regularne może również sprowadzić aplikację.

 

Po czwarte: zapobiegamy nadużyciom!

Tworzenie popularnej aplikacji wymaga czegoś więcej niż tylko dodawania pożądanych funkcji. Nasza strona będzie musiała także poradzić sobie ze zwiększonym ruchem w miarę wzrostu pobrań i udostępnień.

Należy pamiętać, że nawet jeśli nasza apka jest zabezpieczona, to potencjalnie rzecz biorąc nie ma takiego kodu, który byłyby nie do złamania, a więc należy bez przerwy, cały czas dbać o bezpieczeństwo.

 

po piąte: żądania HTTP. Jeśli nie mamy konkretnego przypadku, powinniśmy wyłączyć połączenia HTTP na swoim serwerze. Połączenie HTTPS zapewnia, że dane między klientem a serwerem są szyfrowane, co uniemożliwia ataki szpiegowskie. Domyślnie większość głównych przeglądarek domyślnie korzysta z połączeń HTTPS, a usługi takie jak Let’s Encrypt ułatwiają uzyskanie certyfikatu SSL dla aplikacji.

 

Po szóste: włączamy sprawdzane certyfikatów.

Czasami aplikacja może wymagać połączenia z zewnętrznym dostawcą. Podobnie jak w powyższej sugestii, należy włączyć sprawdzanie certyfikatów dla połączeń wychodzących. Zapewnia to, że komunikacja z interfejsami API lub usługami innych firm jest również zabezpieczona za pomocą protokołu HTTPS. Pamiętajmy, że jeśli witryna innej firmy ma źle skonfigurowany certyfikat, może spowodować błędy, gdy aplikacja próbuje się połączyć.