Hvorfor er softwaresikkerhed en færdighed, som alle programmører bør have?

Hvorfor er softwaresikkerhed en færdighed, som alle programmører bør have?

Som programmør eller udvikler kan vigtigheden af ​​at skabe sikre applikationer ikke overses.

Softwaresikkerhed håndterer håndteringen af ​​ondsindede angreb ved at identificere potentielle sårbarheder i software og tage de nødvendige forholdsregler for at beskytte dem.

Software kan aldrig være 100 % sikker, fordi udviklere kan ignorere en fejl, introducere nye fejl, mens de reparerer eksisterende, eller introducere nye sårbarheder gennem opdateringer.

Der er dog to hovedmetoder, som alle softwareudviklere kan bruge til at sikre, at de skaber sikker software. Det handler om at skrive sikker kode fra begyndelsen og teste koden effektivt.

Hvorfor er softwaresikkerhed en færdighed, som alle programmører bør have?

Softwaresikkerhed spiller en yderst vigtig rolle

Hvordan man skriver sikker kode

At skrive sikker kode har kun én ting at gøre - fejlhåndtering. Hvis du kan forudse enhver potentiel værdi, som brugeren kan give til applikationen og generere et svar i programmet for den værdi, så skriver du sikker kode.

Dette er meget enklere, end du måske tror, ​​da alle gode udviklere ved næsten alt om de applikationer, de udvikler. Derfor bør du kende enhver værdi, som din applikation kræver for at udføre en opgave (godkendte værdier) og forstå, at alle andre værdier, der måtte eksistere, er ikke-godkendte værdier.

Skriv sikker kode

Antag, at du vil oprette et program, der kun accepterer to heltalsværdier fra brugeren og udfører en additionsoperation på dem. Som en god udvikler ved du nu alt om din applikation. Du kender alle de værdier, som dette program vil acceptere (heltalsværdier), og du kender opgaven, som dette program vil udføre (en additionsoperation).

Eksempel på oprettelse af 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);
}
}

Ovenstående kode opretter en applikation, der matcher kravene nøjagtigt. Når den udføres, vil den producere følgende linje i konsollen:

Please enter your two integer values:

Applikationen forbliver derefter sat på pause, indtil brugeren indtaster to heltalsværdier i konsollen (det betyder, at indtast den første værdi, tryk på Enter- tasten og gentag).

Hvis brugeren indtaster værdierne 5 og 4 i konsollen, producerer programmet følgende output:

The sum of the two integer values you entered: 9

Det er fantastisk. Programmet gør præcis, hvad det skal. Men hvis en ond bruger kommer ind og indtaster en ikke-heltalsværdi, såsom "g", i din applikation, vil der være et problem. Dette skyldes, at der ikke er nogen kode i applikationen, der beskytter mod ikke-godkendte værdier.

På dette tidspunkt vil din applikation gå ned og skabe en potentiel gateway til din applikation, så hackere ved præcis, hvad de skal gøre.

Eksempel på programsikkerhed

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

Ovenstående kode er sikker, fordi den udfører undtagelseshåndtering. Derfor, hvis du indtaster en ikke-heltalsværdi, vil programmet generere følgende kodelinje:

Please enter a valid integer value.

Hvad er undtagelseshåndtering?

Hvorfor er softwaresikkerhed en færdighed, som alle programmører bør have?

Undtagelseshåndtering

Grundlæggende er undtagelseshåndtering den moderne version af fejlhåndtering, hvor du adskiller fejlhåndteringskoden fra den almindelige håndteringskode. I ovenstående eksempel er al den normale håndteringskode (eller potentielt undtagelsesfremkaldende kode) i try -blokken , og al fejlhåndteringskoden er i catch-blokken.

Hvis du ser nærmere på ovenstående eksempel, vil du se, at der er to fangblokke. Den første tager et InputMismatchException- argument - dette er navnet på den undtagelse, der bliver kastet, hvis der indtastes en ikke-heltalsværdi. Det andet tager Exception- argumentet , og dette er vigtigt, fordi dets formål er at finde eventuelle undtagelser i koden, som udvikleren ikke fandt under testen.

Tjek koden

Du bør aldrig undervurdere styrken ved at teste og genteste kode. Mange udviklere (og app-brugere) finder nye fejl, efter at softwaren er gjort tilgængelig for offentligheden.

Grundig test af din kode sikrer, at du ved, hvad din applikation vil gøre i enhver tænkelig situation, og det giver dig mulighed for at beskytte den mod databrud.

Overvej eksemplet ovenfor. Hvad hvis du, når du er færdig, kun tester applikationen med heltalsværdier? Du kan forlade applikationen og tro, at du har identificeret alle potentielle fejl, mens du faktisk ikke har det.

Virkeligheden er, at du muligvis ikke er i stand til at identificere alle potentielle fejl. Dette er grunden til, at fejlhåndtering fungerer sammen med at teste din kode. Test af programmet ovenfor afslører en potentiel fejl, der vil opstå i en bestemt situation.

Men hvis der findes en anden fejl, der ikke dukkede op under test, så vil den anden catch-blok i koden ovenfor håndtere det.

Databasesikkerhed

Hvis din applikation opretter forbindelse til en database, er den bedste måde at forhindre adgang til databasen på at sikre, at alle aspekter af applikationen er sikre. Men hvad nu hvis din applikation er designet med det ene formål at give en grænseflade til databasen?

Det er her, tingene bliver lidt mere interessante. I sin mest basale form giver databaser brugere mulighed for at tilføje, hente, opdatere og slette data. Et databasestyringssystem er et program, der giver brugerne mulighed for at interagere direkte med en database.

De fleste databaser indeholder følsomme data, derfor er der et krav for at bevare integriteten og begrænse adgangen til disse data - adgangskontrol.

Adgangskontrol

Adgangskontrol søger at bevare databasens integritet ved at bestemme, hvilke typer personer der kan få adgang til databasen, og begrænse den type adgang, de har. Derfor skal et godt databasestyringssystem være i stand til at registrere, hvem der har adgang til databasen, hvornår og hvad de gjorde.

Det kan også forhindre registrerede brugere i at få adgang til eller redigere data, som de ikke har tilladelse til at interagere med.


Ret fejlen med ikke at kunne ændre temaet

Ret fejlen med ikke at kunne ændre temaet

Sidder dit Windows 7-tema fast på den klassiske mulighed? Hvis det er den situation, du oplever, er der et par rettelser, du kan prøve for at se, om du løser problemet!

Skal jeg stole på CCleaner igen?

Skal jeg stole på CCleaner igen?

Mange anbefaler, at du holder op med at bruge CCleaner. Men det var år siden. Hvordan har appen nu ændret sig, og er den værd at bruge? Lad os finde svaret i den følgende artikel!

Sådan bruger du Microsoft Authenticator-appen

Sådan bruger du Microsoft Authenticator-appen

Microsoft Authenticator er et program, der muliggør to-faktor-godkendelse på understøttede apps og websteder.

Sådan bruger du Reducer Memory til at frigøre RAM-hukommelse

Sådan bruger du Reducer Memory til at frigøre RAM-hukommelse

Reducer Memory er software, der frigør RAM på computeren og hjælper computeren med at køre hurtigere. Artiklen nedenfor vil guide dig i brugen af ​​Reducer Memory.

Sådan genstarter du din computer ved hjælp af PowerShell

Sådan genstarter du din computer ved hjælp af PowerShell

Windows giver brugerne mange måder at genstarte computeren på. Brugere kan bruge Power User Menu, Start Menu eller nedlukningsværktøj og endda den klassiske Shutdown-dialogboks. Der er dog en anden måde, som brugerne ikke kender til: at bruge PowerShell.

Sådan bruger du IP Fjern blokering af falsk IP på Chrome

Sådan bruger du IP Fjern blokering af falsk IP på Chrome

IP Unblock er et VPN-værktøj i Chrome-browseren, der hjælper brugere med at skjule deres IP-adresser og få adgang til blokerede websteder.

Hvorfor skal du tænke dig grundigt om, før du logger på med en social netværkskonto?

Hvorfor skal du tænke dig grundigt om, før du logger på med en social netværkskonto?

Hver gang du tilmelder dig en ny tjeneste, kan du vælge et brugernavn og en adgangskode eller blot logge ind med Facebook eller Twitter. Men skal du gøre det?

Simple DnsCrypt - Værktøj til at beskytte din web-browsing

Simple DnsCrypt - Værktøj til at beskytte din web-browsing

Simple DnsCrypt hjælper dig med at konfigurere DNScrypt-proxy på Windows-systemer, så du kan kryptere og sikre din DNS-trafik.

Samling af PUBG-baggrunde til computere og telefoner

Samling af PUBG-baggrunde til computere og telefoner

Med QuanTriMangs PUBG-baggrundssæt kan du indstille PUBG-baggrunde i høj opløsning på både din computer og telefon.

Hvilken opgradering vil forbedre din computers ydeevne mest?

Hvilken opgradering vil forbedre din computers ydeevne mest?

Føler du, at din pc kører langsomt? Det er tid til at overveje at opgradere noget af din hardware.