Zakaj je varnost programske opreme veščina, ki bi jo morali imeti vsi programerji?

Zakaj je varnost programske opreme veščina, ki bi jo morali imeti vsi programerji?

Kot programer ali razvijalec ne morete spregledati pomena ustvarjanja varnih aplikacij.

Varnost programske opreme obravnava upravljanje zlonamernih napadov tako, da prepozna morebitne ranljivosti v programski opremi in sprejme potrebne varnostne ukrepe za njihovo zaščito.

Programska oprema nikoli ne more biti 100-odstotno varna, ker lahko razvijalci ignorirajo napako, uvedejo nove napake, medtem ko popravljajo obstoječe, ali uvedejo nove ranljivosti s posodobitvami.

Vendar obstajata dve glavni metodi, ki ju lahko uporabijo vsi razvijalci programske opreme, da zagotovijo ustvarjanje varne programske opreme. Gre za pisanje varne kode od začetka in učinkovito testiranje kode.

Zakaj je varnost programske opreme veščina, ki bi jo morali imeti vsi programerji?

Varnost programske opreme igra izjemno pomembno vlogo

Kako napisati varno kodo

Pisanje varne kode ima samo eno stvar - obravnavanje napak. Če lahko predvidite vsako potencialno vrednost, ki jo uporabnik lahko posreduje aplikaciji, in ustvarite odgovor v programu za to vrednost, potem pišete varno kodo.

To je veliko bolj preprosto, kot si morda mislite, saj vsi dobri razvijalci vedo skoraj vse o aplikacijah, ki jih razvijajo. Zato bi morali poznati vsako vrednost, ki jo vaša aplikacija zahteva za izvedbo naloge (odobrene vrednosti), in razumeti, da so vse druge vrednosti, ki morda obstajajo, neodobrene vrednosti.

Napišite varno kodo

Recimo, da želite ustvariti program, ki od uporabnika sprejme samo dve celoštevilski vrednosti in nad njima izvede operacijo dodajanja. Kot dober razvijalec zdaj veste vse o svoji aplikaciji. Poznate vse vrednosti, ki jih bo ta program sprejel (celoštevilske vrednosti), in poznate nalogo, ki jo bo ta program opravil (operacija dodajanja).

Primer izdelave programa v Javi

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);
}
}

Zgornja koda ustvari aplikacijo, ki natančno ustreza zahtevam. Ko se izvede, bo v konzoli ustvaril naslednjo vrstico:

Please enter your two integer values:

Aplikacija bo nato ostala zaustavljena, dokler uporabnik v konzolo ne vnese dveh celih vrednosti (kar pomeni, da vnesete prvo vrednost, pritisnete tipko Enter in ponovite).

Če uporabnik v konzolo vnese vrednosti 5 in 4 , program ustvari naslednji rezultat:

The sum of the two integer values you entered: 9

To je super. Program dela točno to, kar mora. Če pa pride nečeden uporabnik in v vašo aplikacijo vnese vrednost, ki ni celo število, kot je »g«, bo prišlo do težave. To je zato, ker v aplikaciji ni kode, ki bi ščitila pred neodobrenimi vrednostmi.

Na tej točki se bo vaša aplikacija zrušila in ustvarila potencialni prehod v vašo aplikacijo, tako da hekerji natančno vedo, kaj storiti naprej.

Primer varnosti programa

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);
}
}

Zgornja koda je varna, ker izvaja obravnavo izjem. Če torej vnesete vrednost, ki ni celo število, bo program ustvaril naslednjo vrstico kode:

Please enter a valid integer value.

Kaj je obravnavanje izjem?

Zakaj je varnost programske opreme veščina, ki bi jo morali imeti vsi programerji?

Obravnava izjem

V bistvu je obravnavanje izjem sodobna različica obravnavanja napak, kjer kodo za obravnavanje napak ločite od običajne kode za obravnavanje. V zgornjem primeru je vsa običajna koda za obravnavo (ali koda, ki bi lahko povzročila izjeme) v poskusnem bloku , vsa koda za obravnavo napak pa v bloku catch.

Če pogledate bližje zgornji primer, boste videli, da obstajata dva bloka za ulov. Prvi sprejme argument InputMismatchException - to je ime vržene izjeme, če je vnesena vrednost, ki ni celo število. Drugi sprejme argument Izjema in to je pomembno, ker je njegov namen najti morebitne izjeme v kodi, ki jih razvijalec med testiranjem ni našel.

Preverite kodo

Nikoli ne smete podcenjevati moči testiranja in ponovnega testiranja kode. Številni razvijalci (in uporabniki aplikacij) najdejo nove napake, potem ko je programska oprema na voljo javnosti.

Temeljito testiranje vaše kode zagotavlja, da veste, kaj bo vaša aplikacija naredila v vseh možnih situacijah, in to vam omogoča, da jo zaščitite pred kršitvami podatkov.

Razmislite o zgornjem primeru. Kaj pa, če po zaključku preizkusite aplikacijo samo s celimi vrednostmi? Aplikacijo lahko zapustite z mislijo, da ste uspešno prepoznali vse morebitne napake, čeprav v resnici niste.

Dejstvo je, da morda ne boste mogli prepoznati vseh morebitnih napak. Zato obravnavanje napak deluje v tandemu s testiranjem vaše kode. Testiranje zgornjega programa razkrije potencialno napako, ki se bo pojavila v določeni situaciji.

Če pa obstaja kakšna druga napaka, ki se ni pojavila med testiranjem, jo ​​bo obravnaval drugi blok catch v zgornji kodi.

Varnost baze podatkov

Če se vaša aplikacija poveže z bazo podatkov, je najboljši način, da preprečite dostop do te baze podatkov, zagotoviti, da so vsi vidiki aplikacije varni. Kaj pa, če je vaša aplikacija zasnovana z edinim namenom zagotavljanja vmesnika do omenjene baze podatkov?

Tukaj stvari postanejo nekoliko bolj zanimive. V najosnovnejši obliki baze podatkov uporabnikom omogočajo dodajanje, pridobivanje, posodabljanje in brisanje podatkov. Sistem za upravljanje baze podatkov je aplikacija, ki uporabnikom omogoča neposredno interakcijo z bazo podatkov.

Večina podatkovnih zbirk vsebuje občutljive podatke, zato za ohranitev celovitosti in omejitev dostopa do teh podatkov obstaja zahteva - nadzor dostopa.

Nadzor dostopa

Nadzor dostopa skuša ohraniti celovitost baze podatkov z določanjem vrst ljudi, ki lahko dostopajo do baze podatkov, in omejevanjem vrste dostopa, ki ga imajo. Zato mora imeti dober sistem za upravljanje baz podatkov možnost beleženja, kdo je dostopal do baze podatkov, kdaj in kaj je naredil.

Prav tako lahko registriranim uporabnikom prepreči dostop ali urejanje podatkov, s katerimi nimajo pooblastil za interakcijo.


Navodila za uporabo Clonezille za kloniranje trdega diska Windows

Navodila za uporabo Clonezille za kloniranje trdega diska Windows

Uporabite Clonezilla za hitro in zelo preprosto kloniranje celotnega starega trdega diska na nov trdi disk. Ta članek vam bo pokazal, kako klonirati pogon Windows 10 s Clonezilla in bliskovnim pogonom USB.

Zbirka več kot 40 visokoločljivih ozadij Thanos za računalnike

Zbirka več kot 40 visokoločljivih ozadij Thanos za računalnike

Nabor ozadij Thanos v tem članku bo na voljo v vseh ločljivostih za vse računalnike in prenosnike

Razlika med protivirusnimi programi in programi proti zlonamerni programski opremi

Razlika med protivirusnimi programi in programi proti zlonamerni programski opremi

Orodja za odstranjevanje zlonamerne programske opreme in protivirusna programska oprema se med seboj dopolnjujejo in lahko delujejo skupaj, da zagotovijo maksimalno varnost na napravah uporabnikov.

Pregled FortiClient: brezplačni protivirusni program za več platform

Pregled FortiClient: brezplačni protivirusni program za več platform

FortiClient je brezplačen protivirusni izdelek podjetja Fortinet. Fortinet je znan po proizvodnji izdelkov strojne opreme za kibernetsko varnost. FortiClient je program za več platform, ki je na voljo za Windows, macOS, Linux, Windows Phone, iOS in Android.

Popravek Napaka Tega predmeta ni mogoče odpreti v sistemu Windows

Popravek Napaka Tega predmeta ni mogoče odpreti v sistemu Windows

Če uporabljate Windows, prejmete sporočilo o napaki Tega predmeta ni mogoče odpreti. Morda je bil premaknjen, preimenovan ali izbrisan, kaj naj storim? Za podrobnosti sledite spodnjemu članku.

Kaj je KRACK? Kako je KRACK zlomil varnostni protokol WPA2 WiFi

Kaj je KRACK? Kako je KRACK zlomil varnostni protokol WPA2 WiFi

Raziskovalec Mathy Vanhoef z univerze Leuven je odkril resno varnostno napako v omrežnem varnostnem protokolu Wi-Fi Protected Access II (WPA2).

Pogosta vprašanja o privzetih geslih

Pogosta vprašanja o privzetih geslih

V današnjem članku bo Quantrimang povzel nekaj pogosto zastavljenih vprašanj o privzetih geslih, da bi bralcem pomagal odgovoriti na vprašanja v zvezi s to težavo.

Zakaj uporabljati CyberGhost VPN?

Zakaj uporabljati CyberGhost VPN?

Kar potrebujete, je VPN - ki poenostavi različne možnosti, CyberGhost VPN pa je eden najboljših VPN-jev, ko gre za preprostost.

Trije najpomembnejši varnostni izzivi v več oblakih in kako zgraditi strategijo

Trije najpomembnejši varnostni izzivi v več oblakih in kako zgraditi strategijo

Z vzponom večoblačnih okolij so se pojavile številne najboljše varnostne prakse in obstaja nekaj pomembnih korakov, ki bi jih morale narediti vse organizacije, ko razvijajo lastne varnostne strategije.

Namestite dinamične zaslone in animirana ozadja v sistemu Windows

Namestite dinamične zaslone in animirana ozadja v sistemu Windows

V Microsoftovem operacijskem sistemu Windows Vista je DreamScene omogočal nastavitev dinamičnih ozadij za računalnike, osem let pozneje pa v sistemu Windows 10 še vedno ni na voljo. Zakaj je ta običaj skozi leta predstavljal vrnitev v preteklost in kaj lahko storimo, da to spremenimo?