Bezpieczeństwo aplikacji to praktyka polegająca na opracowywaniu oprogramowania komputerowego wyposażonego w funkcje zabezpieczające chroniące przed złośliwymi atakami lub wrogimi ingerencjami. Polega na identyfikowaniu i usuwaniu luk w zabezpieczeniach oprogramowania aplikacyjnego oraz zabezpieczaniu go za pomocą odpowiednich mechanizmów kontrolnych, takich jak uwierzytelnianie, autoryzacja i szyfrowanie.
Bezpieczeństwo aplikacji jest ważnym elementem bezpieczeństwa komputera i sieci, ponieważ oprogramowanie aplikacyjne staje się coraz częściej celem złośliwych ataków. Luki mogą obejmować przepełnienia bufora, ataki polegające na wstrzykiwaniu po stronie serwera, takie jak wstrzykiwanie SQL i skrypty krzyżowe (XSS). Bezpieczeństwo aplikacji to aktywna i wymagająca dziedzina, ponieważ osoby atakujące stosują coraz bardziej wyrafinowane metody w celu włamania się do aplikacji i systemów.
Bezpieczeństwo aplikacji obejmuje szereg technik, od wymagań i projektu po zagrożenia egzogeniczne. Praktyki kodowania na poziomie kodu źródłowego, projekt architektoniczny i stosowanie najlepszych praktyk bezpiecznego kodowania są powszechnie akceptowane jako podstawowe mechanizmy kontroli bezpieczeństwa. Procesy zapewniania jakości (QA) i testowania bezpieczeństwa pomagają zidentyfikować wszelkie problemy związane z bezpieczeństwem przed i w trakcie wdrażania aplikacji.
Ponadto organizacje muszą wziąć pod uwagę architekturę aplikacji i środowisko, aby złagodzić niektóre zagrożenia. Takie rozważania mogą obejmować zapobieganie uzyskiwaniu przez atakujących dostępu do kodu źródłowego lub magazynów danych, ochronę w sieci, filtrowanie pod kątem złośliwych danych wejściowych, zapobieganie niewłaściwemu użyciu aplikacji oraz zapobieganie nieautoryzowanemu dostępowi lub użyciu.
Aby zmniejszyć ryzyko zagrożeń bezpieczeństwa, organizacje muszą także mieć świadomość luk w zabezpieczeniach aplikacji innych firm i eliminować luki w zabezpieczeniach własnych aplikacji. Może to obejmować analizę kodu statycznego, modelowanie zagrożeń, testowanie dynamiczne, ręczne skanowanie kodu źródłowego, sprawdzanie poprawności danych wejściowych i wzmacnianie aplikacji. Korzystanie z profesjonalnych usług i oprogramowania zabezpieczającego może być również niezwykle pomocne dla organizacji w utrzymaniu bezpiecznego środowiska aplikacji.