Som programmør eller udvikler kan vigtigheden af ​​at oprette sikre applikationer ikke overdrives.

Softwaresikkerhed håndterer styring 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 en udvikler kan overse en fejl, oprette nye fejl i et forsøg på at rette eksisterende sager eller oprette nye sårbarheder gennem opdateringer.

Der er dog to vigtige fremgangsmåder, som alle softwareudviklere kan anvende for at sikre, at de opretter sikker softwarewriting-sikker kode i første omgang og effektivt tester din kode.

Hvordan man skriver en sikker kode

Skrivning af sikker kode kommer ned på en thingerror-håndtering. Hvis du kan forudse enhver potentiel værdi, som en bruger kan føde din applikation og oprette et svar i dit program for den værdi, skriver du sikker kode.

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

Skrivning af sikker kode

Lad os sige, at du vil oprette et program, der kun accepterer to heltalværdier fra en bruger og udfører en tilføjelsesoperation på dem. Med den eneste sætning, som en god udvikler, ved du nu alt om din applikation. Du kender alle de værdier, som dette program accepterer (heltal værdier), og du kender den opgave, som dette program vil gennemføre (en tilføjelseshandling).

Oprettelse af programmet i Java-eksempel


importer java.util. Scanner;
offentlig klasse Main {
// Hovedfunktionen, der udfører programmet og samler de to værdier
offentlig statisk ugyldig hoved (String [] args) {
System.out.println ("Indtast dine to heltal værdier:");
int værdi1;
int værdi2;
Scannerinput = ny scanner (System.in);
værdi1 = input.nextInt ();
værdi2 = input.nextInt ();
tilføjelse (værdi1, værdi2);
input.close ();
}
// funktionen, der samler de to værdier og viser deres sum
privat statisk ugyldig tilføjelse (int værdi1, int værdi2) {
int sum;
sum = værdi1 + værdi2;
System.out.println ("Summen af ​​de to heltal værdier, du indtastede:" + sum);
}
}

Koden ovenfor producerer en applikation, der matcher kravene præcist. Ved udførelse producerer den følgende linje i konsollen:


Indtast dine to heltal værdier:

Applikationen forbliver derefter pause, indtil brugeren indtaster to heltalværdier i konsollen (det betyder at skrive den første værdi, trykke på enter-tasten og gentage).

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


Summen af ​​de to heltalsværdier, du indtastede: 9

Dette er godt; programmet gør nøjagtigt hvad det skal gøre. Imidlertid, hvis en ondskabsfuld bruger kommer sammen og indtaster en ikke-heltal-værdi, såsom "g", i din applikation, vil der være problemer. Dette skyldes, at ingen kode i applikationen beskytter mod ikke-godkendte værdier.

På dette tidspunkt går din applikation ned og skaber en potentiel gateway til din applikation for den hacker, der ved præcis, hvad den skal gøre næste gang.

Sikring af dit programeksempel


importer java.util. InputMismatchException;
importer java.util. Scanner;
offentlig klasse Main {
// Hovedfunktionen, der udfører programmet og samler de to værdier
offentlig statisk ugyldig hoved (String [] args) {
prøve {
System.out.println ("Indtast dine to heltal værdier:");
int værdi1;
int værdi2;
// ved hjælp af scannerklassen til at læse hvert input fra brugeren,
// og tildel det til den respektive variabel (kaster en undtagelse, hvis værdierne ikke er heltal)
Scannerinput = ny scanner (System.in);
værdi1 = input.nextInt ();
værdi2 = input.nextInt ();
// kalder tilføjelsesfunktionen og sender de to værdier til den
tilføjelse (værdi1, værdi2);
// lukker inputstrømmen, når den er slut til brugen
input.close ();
// håndter alle de fejl, der er kastet i prøveblokken
} fangst (InputMismatchException e) {
System.out.println ("Indtast en gyldig heltal værdi.");
} fangst (undtagelse e) {
System.out.println (e.getMessage ());
}
}
// funktionen, der samler de to værdier og viser deres sum
privat statisk ugyldig tilføjelse (int værdi1, int værdi2) {
int sum;
sum = værdi1 + værdi2;
System.out.println ("Summen af ​​de to heltal værdier, du indtastede:" + sum);
}
}

Koden ovenfor er sikker, fordi den udfører undtagelseshåndtering. Derfor, hvis du indtaster en ikke-heltal værdi, afsluttes programmet korrekt, mens du producerer følgende linje kode:


Indtast en gyldig heltal.

Hvad er undtagelseshåndtering?

I det væsentlige er undtagelseshåndtering den moderne version af fejlhåndtering, hvor du adskiller fejlhåndteringskode fra normal behandlingskode. I eksemplet ovenfor er al den normale behandlingskode (eller kode, der potentielt kan kaste en undtagelse) inden for en prøve blokere, og al fejlhåndteringskoden er indenfor fangst blokke.

Hvis du ser nærmere på eksemplet ovenfor, finder du ud af, at der er to fangstblokke. Den første tager en InputMismatchException argument; dette er navnet på den undtagelse, der kastes, hvis der indtastes en ikke-heltalværdi. Den anden tager en Undtagelse argument, og dette er vigtigt, fordi formålet er at fange enhver undtagelse inden for den kode, som udvikleren ikke fandt under testen.

Relaterede: Java-undtagelser: håndterer du dem rigtigt?

Test af din kode

Du bør aldrig undervurdere kraften i at teste og gentest din kode inden emballering. Mange udviklere (og brugere af deres applikationer) finder nye fejl, efter at softwaren er tilgængelig for offentligheden.

Grundig test af din kode vil sikre, at du ved, hvad din applikation vil gøre under alle tænkelige scenarier, og det gør det muligt for dig at beskytte din applikation mod databrud.

Relaterede: Sådan lander du dit første software-testjob

Overvej eksemplet ovenfor. Hvad hvis du efter afslutning kun tester applikationen med heltalsværdier? Du går muligvis væk fra applikationen og tænker, at du med succes identificerede alle potentielle fejl, når det ikke er tilfældet.

Faktum er, at du muligvis ikke kan identificere alle potentielle fejl; dette er grunden til fejlhåndtering fungerer hånd i hånd med at teste din kode. Testen af ​​programmet ovenfor viser, at en potentiel fejl vil opstå i et specifikt scenario.

Men hvis der findes en anden fejl, der ikke vises under test, håndterer den anden fangstblok i koden ovenfor den.

Sikring af din database

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 din applikation er sikre. Men hvad 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 tillader en database en bruger at tilføje, hente, opdatere og slette data. Et databasesystem er et program, der giver brugeren mulighed for at interagere direkte med en database.

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

Adgangskontrol

Adgangskontrol søger at bevare integriteten af ​​en database ved at definere den type mennesker, der kan få adgang til en database og begrænse den type adgang, de har. Derfor skal et godt databasehåndteringssystem kunne logge, hvem der får adgang til databasen, på hvilket tidspunkt og hvad de gjorde.

Det skal også være i stand til at forhindre en registreret bruger i at få adgang til eller redigere data, som de ikke er autoriseret til at interagere med.

Softwaresikkerhed er en afgørende færdighed for alle udviklere

Udvikling af god software er synonymt med at sikre, at din software kan modstå ethvert ondsindet angreb. Dette opnås kun gennem skrivning af sikker kode, kontinuerlig test af en applikation og opretholdelse af kontrol med, hvem der har adgang til dine data.

Nu hvor du ved, hvordan du sikrer din software, vil du måske lære om nogle softwareudviklingstrin.

E-mail
6 trin til softwareudvikling, som alle programmører burde vide

Forbereder du dig på at kode dit første program? Sørg for at følge disse vigtige trin til softwareudvikling.

Læs Næste

Relaterede emner
  • Programmering
  • Cybersikkerhed
  • Kodningstip
Om forfatteren
Kadeisha Kean (15 artikler offentliggjort)

Kadeisha Kean er en full-stack softwareudvikler og teknisk / teknologiforfatter. Hun har den særskilte evne til at forenkle nogle af de mest komplekse teknologiske begreber; producerer materiale, der let kan forstås af enhver teknologinevner. Hun brænder for at skrive, udvikle interessant software og rejse verden rundt (gennem dokumentarfilm).

Mere fra Kadeisha Kean

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.