Dlaczego bezpieczeństwo oprogramowania to umiejętność, którą powinien posiadać każdy programista?

Jako programista lub programista nie możesz przeoczyć znaczenia tworzenia bezpiecznych aplikacji.

Bezpieczeństwo oprogramowania zajmuje się zarządzaniem złośliwymi atakami poprzez identyfikację potencjalnych luk w oprogramowaniu i podejmowanie niezbędnych środków ostrożności w celu ich ochrony.

Oprogramowanie nigdy nie będzie w 100% bezpieczne, ponieważ programiści mogą zignorować błąd, wprowadzić nowe błędy podczas naprawiania istniejących lub wprowadzić nowe luki w zabezpieczeniach poprzez aktualizacje.

Istnieją jednak dwie główne metody, z których mogą skorzystać wszyscy twórcy oprogramowania, aby mieć pewność, że tworzą bezpieczne oprogramowanie. Chodzi o pisanie bezpiecznego kodu od początku i skuteczne testowanie kodu.

Dlaczego bezpieczeństwo oprogramowania to umiejętność, którą powinien posiadać każdy programista?

Bezpieczeństwo oprogramowania odgrywa niezwykle ważną rolę

Jak napisać bezpieczny kod

Pisanie bezpiecznego kodu ma tylko jedno zadanie – obsługę błędów. Jeśli potrafisz przewidzieć każdą potencjalną wartość, jaką użytkownik może dostarczyć aplikacji i wygenerować odpowiedź w programie dla tej wartości, to piszesz bezpieczny kod.

Jest to znacznie prostsze, niż mogłoby się wydawać, ponieważ wszyscy dobrzy programiści wiedzą prawie wszystko o tworzonych przez siebie aplikacjach. Dlatego powinieneś znać każdą wartość wymaganą przez Twoją aplikację do wykonania zadania (wartości zatwierdzone) i zrozumieć, że wszelkie inne wartości, które mogą istnieć, są wartościami niezatwierdzonymi.

Napisz bezpieczny kod

Załóżmy, że chcesz utworzyć program, który przyjmie od użytkownika tylko dwie wartości całkowite i wykona na nich operację dodawania. Jako dobry programista wiesz już wszystko o swojej aplikacji. Znasz wszystkie wartości, jakie przyjmie ten program (wartości całkowite) i znasz zadanie, które ten program wykona (operacja dodawania).

Przykład tworzenia programu w Javie

import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
addition(value1, value2);
input.close();
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

Powyższy kod tworzy aplikację dokładnie odpowiadającą wymaganiom. Po wykonaniu wyświetli w konsoli następujący wiersz:

Please enter your two integer values:

Aplikacja pozostanie wówczas wstrzymana do czasu, aż użytkownik wprowadzi do konsoli dwie wartości całkowite (co oznacza wprowadzenie pierwszej wartości, naciśnięcie klawisza Enter i powtórzenie).

Jeśli użytkownik wprowadzi w konsoli wartości 5 i 4 , program wygeneruje następujące dane wyjściowe:

The sum of the two integer values you entered: 9

To wspaniale. Program robi dokładnie to co powinien. Jeśli jednak wejdzie nikczemny użytkownik i wprowadzi do aplikacji wartość niecałkowitą, taką jak „g”, wystąpi problem. Dzieje się tak dlatego, że w aplikacji nie ma kodu chroniącego przed niezatwierdzonymi wartościami.

W tym momencie Twoja aplikacja ulegnie awarii, tworząc potencjalną bramę do Twojej aplikacji, dzięki czemu hakerzy będą dokładnie wiedzieć, co dalej robić.

Przykład bezpieczeństwa programu

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
try {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
//using the scanner class to read each input from the user,
//and assign it to is respective variable (throws an exception if the values are not integers)
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
//calls the addition function and passes the two values to it
addition(value1, value2);
//closes the input stream after it has come to the end of its use
input.close();
//handle all the errors thrown in the try block
}catch(InputMismatchException e){
System.out.println("Please enter a valid integer value.");
}catch(Exception e) {
System.out.println(e.getMessage());
}
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

Powyższy kod jest bezpieczny, ponieważ obsługuje wyjątki. Dlatego jeśli wprowadzisz wartość niecałkowitą, program wygeneruje następujący wiersz kodu:

Please enter a valid integer value.

Co to jest obsługa wyjątków?

Dlaczego bezpieczeństwo oprogramowania to umiejętność, którą powinien posiadać każdy programista?

Obsługa wyjątków

Zasadniczo obsługa wyjątków to nowoczesna wersja obsługi błędów, w której oddziela się kod obsługi błędów od zwykłego kodu obsługi. W powyższym przykładzie cały normalny kod obsługi (lub kod potencjalnie powodujący wyjątek) znajduje się w bloku try , a cały kod obsługi błędów znajduje się w bloku catch.

Jeśli przyjrzysz się bliżej powyższemu przykładowi, zobaczysz, że istnieją dwa bloki catch. Pierwsza przyjmuje argument InputMismatchException - jest to nazwa wyjątku zgłaszanego w przypadku wprowadzenia wartości niecałkowitej. Drugi przyjmuje argument Wyjątek i jest to ważne, ponieważ jego celem jest znalezienie wyjątków w kodzie, których programista nie znalazł podczas testowania.

Sprawdź kod

Nigdy nie należy lekceważyć mocy testowania i ponownego testowania kodu. Wielu programistów (i użytkowników aplikacji) znajduje nowe błędy po udostępnieniu oprogramowania publicznie.

Dokładne przetestowanie Twojego kodu daje pewność, że wiesz, co Twoja aplikacja zrobi w każdej możliwej sytuacji, a to pozwala zabezpieczyć ją przed naruszeniami danych.

Rozważ powyższy przykład. Co się stanie, jeśli po zakończeniu będziesz testować aplikację tylko z wartościami całkowitymi? Możesz opuścić aplikację z myślą, że udało Ci się zidentyfikować wszystkie potencjalne błędy, podczas gdy w rzeczywistości tak się nie stało.

Rzeczywistość jest taka, że ​​możesz nie być w stanie zidentyfikować wszystkich potencjalnych błędów. Dlatego obsługa błędów działa w połączeniu z testowaniem kodu. Testowanie powyższego programu ujawnia potencjalny błąd, który wystąpi w określonej sytuacji.

Jeśli jednak istnieje inny błąd, który nie pojawił się podczas testowania, poradzi sobie z nim drugi blok catch w powyższym kodzie.

Bezpieczeństwo baz danych

Jeśli aplikacja łączy się z bazą danych, najlepszym sposobem uniemożliwienia dostępu do tej bazy danych jest zapewnienie bezpieczeństwa wszystkich aspektów aplikacji. Co jednak, jeśli aplikacja została zaprojektowana wyłącznie w celu zapewnienia interfejsu do wspomnianej bazy danych?

Tutaj sytuacja staje się nieco bardziej interesująca. W swojej najbardziej podstawowej formie bazy danych umożliwiają użytkownikom dodawanie, pobieranie, aktualizowanie i usuwanie danych. System zarządzania bazami danych to aplikacja umożliwiająca użytkownikom bezpośrednią interakcję z bazą danych.

Większość baz danych zawiera dane wrażliwe, dlatego też, aby zachować integralność i ograniczyć dostęp do tych danych, istnieje wymóg – kontrola dostępu.

Kontrola dostępu

Kontrola dostępu ma na celu utrzymanie integralności bazy danych poprzez określenie typów osób, które mogą uzyskać dostęp do bazy danych i ograniczenie rodzaju dostępu. Dlatego dobry system zarządzania bazami danych musi być w stanie rejestrować, kto, kiedy i co zrobił, uzyskał dostęp do bazy danych.

Może również uniemożliwić zarejestrowanym użytkownikom dostęp lub edycję danych, z którymi nie są uprawnieni do interakcji.

Zostaw komentarz

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Czy widzisz powiadomienie o aktywacji systemu Windows 10 w prawym rogu ekranu? W tym artykule dowiesz się, jak usunąć powiadomienie o żądaniu dotyczącym praw autorskich w systemie Windows 10.

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Niedawno firma Microsoft wydała najnowszą aktualizację zbiorczą dla użytkowników komputerów PC z systemem Windows 10 o nazwie Build 14393.222. Ta aktualizacja wydana dla systemu Windows 10 naprawia głównie błędy na podstawie opinii użytkowników i poprawia wydajność systemu operacyjnego.

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Czy masz komputery w sieci lokalnej, które wymagają dostępu zewnętrznego? Dobrym rozwiązaniem może być użycie hosta bastionowego jako strażnika sieci.

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

Czasami może być konieczne jednoczesne usunięcie wszystkich starych dzienników zdarzeń. W tym przewodniku Quantrimang.com pokaże Ci 3 sposoby szybkiego usunięcia wszystkich dzienników zdarzeń w Podglądzie zdarzeń systemu Windows 10.

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jeśli wolisz używać starej, klasycznej klawiatury, takiej jak IBM Model M, która nie zawiera fizycznego klawisza Windows, istnieje prosty sposób, aby dodać więcej, pożyczając klawisz, którego nie używasz często.

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

WindowTop to narzędzie, które ma możliwość przyciemnienia wszystkich okien aplikacji i programów działających na komputerach z systemem Windows 10. Możesz także użyć interfejsu z ciemnym tłem w systemie Windows.

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

W wielu poprzednich artykułach wspominaliśmy, że zachowanie anonimowości w Internecie jest niezwykle ważne. Co roku dochodzi do wycieku prywatnych informacji, co sprawia, że ​​bezpieczeństwo w Internecie staje się coraz bardziej konieczne. Z tego też powodu powinniśmy używać wirtualnych adresów IP. Poniżej dowiemy się o metodach tworzenia fałszywych adresów IP!

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Pasek języka w systemie Windows 8 to miniaturowy pasek narzędzi języka, zaprojektowany tak, aby automatycznie wyświetlał się na ekranie komputera stacjonarnego. Jednak wiele osób chce ukryć ten pasek języka na pasku zadań.

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Maksymalizacja szybkości Internetu jest niezbędna do optymalizacji połączenia sieciowego. Możesz cieszyć się optymalną rozrywką i pracą, korzystając z komputerów, telewizorów z dostępem do Internetu, konsol do gier itp.

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Łączność bezprzewodowa jest dziś koniecznością i dlatego bezpieczeństwo sieci bezprzewodowej jest niezbędne do zapewnienia bezpieczeństwa w sieci wewnętrznej.