Hvorfor er programvaresikkerhet en ferdighet som alle programmerere bør ha?

Hvorfor er programvaresikkerhet en ferdighet som alle programmerere bør ha?

Som programmerer eller utvikler kan viktigheten av å lage sikre applikasjoner ikke overses.

Programvaresikkerhet adresserer håndtering av ondsinnede angrep ved å identifisere potensielle sårbarheter i programvare og ta nødvendige forholdsregler for å beskytte dem.

Programvare kan aldri være 100 % sikker fordi utviklere kan ignorere en feil, introdusere nye feil mens de fikser eksisterende, eller introdusere nye sårbarheter gjennom oppdateringer.

Det er imidlertid to hovedmetoder som alle programvareutviklere kan bruke for å sikre at de lager sikker programvare. Det handler om å skrive sikker kode fra begynnelsen og teste koden effektivt.

Hvorfor er programvaresikkerhet en ferdighet som alle programmerere bør ha?

Programvaresikkerhet spiller en ekstremt viktig rolle

Hvordan skrive sikker kode

Å skrive sikker kode har bare én ting å gjøre - feilhåndtering. Hvis du kan forutse hver potensielle verdi brukeren kan gi til applikasjonen og generere et svar i programmet for den verdien, skriver du sikker kode.

Dette er mye enklere enn du kanskje tror, ​​ettersom alle gode utviklere vet nesten alt om applikasjonene de utvikler. Derfor bør du kjenne til hver verdi som applikasjonen din krever for å utføre en oppgave (godkjente verdier) og forstå at alle andre verdier som kan eksistere er ikke-godkjente verdier.

Skriv sikker kode

Anta at du vil lage et program som bare aksepterer to heltallsverdier fra brukeren og utfører en tilleggsoperasjon på dem. Som en god utvikler vet du nå alt om applikasjonen din. Du vet alle verdiene dette programmet vil akseptere (heltallsverdier), og du vet oppgaven dette programmet vil utføre (en tilleggsoperasjon).

Eksempel på å lage et program i Java

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

Koden ovenfor oppretter en applikasjon som samsvarer nøyaktig med kravene. Når den utføres, vil den produsere følgende linje i konsollen:

Please enter your two integer values:

Applikasjonen vil da forbli satt på pause til brukeren legger inn to heltallsverdier i konsollen (som betyr å angi den første verdien, trykk på Enter- tasten og gjenta).

Hvis brukeren skriver inn verdiene 5 og 4 i konsollen, produserer programmet følgende utgang:

The sum of the two integer values you entered: 9

Det er flott. Programmet gjør akkurat det det skal. Men hvis en ond bruker kommer inn og skriver inn en ikke-heltallsverdi, for eksempel "g", i applikasjonen din, vil det være et problem. Dette er fordi det ikke er noen kode i applikasjonen som beskytter mot ikke-godkjente verdier.

På dette tidspunktet vil applikasjonen din krasje, og skape en potensiell inngangsport til applikasjonen din slik at hackere vet nøyaktig hva de skal gjøre videre.

Eksempel på programsikkerhet

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

Koden ovenfor er sikker fordi den utfører unntakshåndtering. Derfor, hvis du skriver inn en ikke-heltallsverdi, vil programmet generere følgende kodelinje:

Please enter a valid integer value.

Hva er unntakshåndtering?

Hvorfor er programvaresikkerhet en ferdighet som alle programmerere bør ha?

Avvikshåndtering

I hovedsak er unntakshåndtering den moderne versjonen av feilhåndtering, der du skiller feilhåndteringskoden fra den vanlige håndteringskoden. I eksemplet ovenfor er all normal håndteringskode (eller potensielt unntak-forårsakende kode) i try -blokken og all feilhåndteringskode er i catch-blokken.

Hvis du ser nærmere på eksemplet ovenfor, vil du se at det er to fangblokker. Den første tar et InputMismatchException- argument - dette er navnet på unntaket som blir kastet hvis en ikke-heltallsverdi er angitt. Det andre tar Exception- argumentet , og dette er viktig fordi formålet er å finne eventuelle unntak i koden som utvikleren ikke fant under testing.

Sjekk koden

Du bør aldri undervurdere kraften ved å teste og teste kode på nytt. Mange utviklere (og app-brukere) finner nye feil etter at programvaren er gjort tilgjengelig for allmennheten.

Grundig testing av koden din sikrer at du vet hva applikasjonen din vil gjøre i alle tenkelige situasjoner, og det lar deg beskytte den mot datainnbrudd.

Tenk på eksempelet ovenfor. Hva om du, når den er fullført, bare tester applikasjonen med heltallsverdier? Du kan forlate applikasjonen og tro at du har identifisert alle potensielle feil, mens du faktisk ikke har det.

Realiteten er at du kanskje ikke kan identifisere alle potensielle feil. Dette er grunnen til at feilhåndtering fungerer sammen med å teste koden din. Testing av programmet ovenfor avslører en potensiell feil som vil oppstå i en bestemt situasjon.

Men hvis det finnes en annen feil som ikke dukket opp under testing, vil den andre fangstblokken i koden ovenfor håndtere det.

Databasesikkerhet

Hvis applikasjonen din kobles til en database, er den beste måten å forhindre tilgang til den databasen på å sikre at alle aspekter av applikasjonen er sikre. Men hva om applikasjonen din er designet med det eneste formålet å gi et grensesnitt til databasen?

Det er her ting blir litt mer interessant. I sin mest grunnleggende form lar databaser brukere legge til, hente, oppdatere og slette data. Et databasestyringssystem er et program som lar brukere samhandle direkte med en database.

De fleste databaser inneholder sensitive data, derfor, for å opprettholde integriteten og begrense tilgangen til disse dataene, er det et krav - tilgangskontroll.

Adgangskontroll

Tilgangskontroll søker å opprettholde integriteten til databasen ved å bestemme hvilke typer personer som kan få tilgang til databasen og begrense typen tilgang de har. Derfor må et godt databasestyringssystem kunne registrere hvem som har tilgang til databasen, når og hva de gjorde.

Det kan også hindre registrerte brukere i å få tilgang til eller redigere data som de ikke er autorisert til å samhandle med.


Trenger jeg antivirusprogramvare hvis jeg ikke bruker Internett?

Trenger jeg antivirusprogramvare hvis jeg ikke bruker Internett?

Hvis du tilfeldigvis ikke bruker Internett på en bestemt enhet, for eksempel et nettbrett eller en bærbar datamaskin, trenger du fortsatt antivirusprogramvare eller er dette bortkastede penger?

Instruksjoner for bruk av Microsoft PC Manager til å administrere Windows

Instruksjoner for bruk av Microsoft PC Manager til å administrere Windows

Microsofts nye PC Manager-app samler mange av disse vedlikeholds- og ytelsesverktøyene på ett sted. Det gjør det mye enklere å holde Windows-PC-en i gang.

Slik oppdaterer du SupportAssist på Dell-maskiner

Slik oppdaterer du SupportAssist på Dell-maskiner

SupportAssist for PC automatiserer støtte fra Dell ved proaktivt og prediktivt å identifisere maskinvare- og programvareproblemer på brukernes systemer.

Slik avinstallerer du Chromium Malware i 4 enkle trinn

Slik avinstallerer du Chromium Malware i 4 enkle trinn

Chromium malware er et ganske populært alternativ blant useriøse utviklere. Chromium malware kan se nesten ut som en ekte programvarepakke.

Hva er en DNS-lekkasje?

Hva er en DNS-lekkasje?

DNS-informasjon kan noen ganger lekke ut av en VPN-tilkobling, og det kan forårsake alvorlige ting når det gjelder personvern og sikkerhet på nettet.

Hvordan sjekke og fikse DNS-lekkasjer i VPN

Hvordan sjekke og fikse DNS-lekkasjer i VPN

Når du bruker en sikker tilkobling som en VPN-tunnel, oppstår DNS-lekkasjer når DNS-forespørsler sendes over det vanlige (ukrypterte) nettverket i stedet for den sikre tunnelen.

Hvordan endre Windows-brukerkontopassord ved hjelp av ledetekst

Hvordan endre Windows-brukerkontopassord ved hjelp av ledetekst

Takket være et enkelt, men nyttig kommandoverktøy, kan du raskt endre passordet for Windows PC-brukerkontoen din rett fra ledetekstvinduet.

Hva er Shodan? Hvordan kan det forbedre nettsikkerheten?

Hva er Shodan? Hvordan kan det forbedre nettsikkerheten?

Shodan er som Google, men mer et depot for Internet of Things (IoT)-enheter. Mens Google indekserer nettsteder på World Wide Web og innholdet på disse sidene, indekserer Shodan hver enhet som er direkte koblet til Internett.

Hvordan sjekke om et datanettverk er sikkert

Hvordan sjekke om et datanettverk er sikkert

CyRadar Internet Security Check Tool er et verktøy for å evaluere datamaskinens evne til å forhindre cyberangrep, helt gratis.

Instruksjoner for installasjon og konfigurering av DNS Server på Windows Server 2016

Instruksjoner for installasjon og konfigurering av DNS Server på Windows Server 2016

Å konfigurere DNS er det samme som å konfigurere det, noe som betyr at du ikke trenger å bry deg for mye eller be noen admin om å hjelpe deg med det, fordi du kan gjøre dette selv, med detaljerte instruksjoner som følger i denne artikkelen.