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

Programvaresikkerhet håndterer håndtering av ondsinnede angrep ved å identifisere potensielle sårbarheter i programvaren og ta de nødvendige forholdsregler for å beskytte mot dem.

Programvare kan aldri være 100% sikker fordi en utvikler kan overse en feil, opprette nye feil i et forsøk på å fikse eksisterende saker eller opprette nye sårbarheter gjennom oppdateringer.

Imidlertid er det to viktige fremgangsmåter som alle programvareutviklere kan bruke for å sikre at de oppretter sikker programvare som skriver sikker kode i utgangspunktet, og effektivt tester koden din.

Hvordan skrive sikker kode

Å skrive sikker kode kommer til å håndtere en feil. Hvis du kan forutse alle potensielle verdier som en bruker kan mate applikasjonen din og lage et svar i programmet ditt for den verdien, skriver du sikker kode.

Dette er mye enklere enn du kanskje tror fordi alle gode utviklere vet nesten alt om applikasjonene de utvikler. Derfor bør du kjenne alle verdiene som søknaden din krever for å utføre en oppgave (de godkjente verdiene) og forstå at alle andre mulige verdier som eksisterer er en ikke godkjent verdi.

Skrive sikker kode

La oss si at du vil lage et program som bare godtar to heltallverdier fra en bruker og utfører en tilleggsoperasjon på dem. Med den eneste setningen, som en god utvikler, vet du nå alt om søknaden din. Du kjenner alle verdiene som dette programmet godtar (heltall) og du vet oppgaven som dette programmet vil fullføre (en tilleggsoperasjon).

Opprette programmet i Java Eksempel


importer java.util. Skanner;
offentlig klasse Main {
// Hovedfunksjonen som utfører programmet og samler de to verdiene
public static void main (String [] args) {
System.out.println ("Angi de to heltallverdiene:");
int verdi1;
int verdi2;
Skannerinngang = ny skanner (System.in);
verdi1 = input.nextInt ();
verdi2 = input.nextInt ();
tillegg (verdi1, verdi2);
input.close ();
}
// funksjonen som samler de to verdiene og viser summen
privat statisk tomrom tillegg (int verdi1, int verdi2) {
int sum;
sum = verdi1 + verdi2;
System.out.println ("Summen av de to heltallverdiene du skrev inn:" + sum);
}
}

Koden ovenfor produserer et program som samsvarer nøyaktig med kravene. Ved kjøring vil den produsere følgende linje i konsollen:


Angi de to heltallverdiene:

Programmet blir deretter satt på pause til brukeren legger inn to heltallverdier i konsollen (det betyr å skrive den første verdien, trykke på enter-tasten og gjenta).

Hvis brukeren legger inn verdiene 5 og 4 i konsollen vil programmet produsere følgende utdata:


Summen av de to heltallverdiene du skrev inn: 9

Dette er flott; programmet gjør akkurat hva det skal gjøre. Imidlertid, hvis en skjemmende bruker kommer sammen og skriver inn en ikke-heltallverdi, for eksempel "g", i applikasjonen din, vil det være problemer. Dette er fordi ingen kode i applikasjonen beskytter mot ikke godkjente verdier.

På dette tidspunktet vil applikasjonen din krasje, og skape en potensiell gateway i applikasjonen din for hackeren som vet nøyaktig hva du skal gjøre videre.

Sikre programeksemplet ditt


importer java.util. InputMismatchException;
importer java.util. Skanner;
offentlig klasse Main {
// Hovedfunksjonen som utfører programmet og samler de to verdiene
public static void main (String [] args) {
prøv {
System.out.println ("Angi de to heltallverdiene:");
int verdi1;
int verdi2;
// bruker skannerklassen til å lese hver inngang fra brukeren,
// og tilordne den til er respektive variabel (kaster et unntak hvis verdiene ikke er heltall)
Skannerinngang = ny skanner (System.in);
verdi1 = input.nextInt ();
verdi2 = input.nextInt ();
// kaller tilleggsfunksjonen og sender de to verdiene til den
tillegg (verdi1, verdi2);
// lukker inngangsstrømmen etter at den har kommet til slutten av bruken
input.close ();
// håndtere alle feilene som ble kastet i prøveblokken
} fangst (InputMismatchException e) {
System.out.println ("Vennligst skriv inn en gyldig heltallverdi.");
} fangst (unntak e) {
System.out.println (e.getMessage ());
}
}
// funksjonen som samler de to verdiene og viser summen
privat statisk tomrom tillegg (int verdi1, int verdi2) {
int sum;
sum = verdi1 + verdi2;
System.out.println ("Summen av de to heltallverdiene du skrev inn:" + sum);
}
}

Koden ovenfor er sikker fordi den utfører unntakshåndtering. Derfor, hvis du skriver inn en ikke-heltallverdi, avslutter programmet riktig mens du produserer følgende kodelinje:


Angi en gyldig heltallverdi.

Hva er unntakshåndtering?

I hovedsak er unntakshåndtering den moderne versjonen av feilhåndtering, der du skiller feilhåndteringskode fra normal behandlingskode. I eksemplet ovenfor er all normal behandlingskode (eller kode som potensielt kan kaste et unntak) innenfor et prøve blokkering, og all feilhåndteringskoden er innenfor å fange blokker.

Hvis du ser nærmere på eksemplet ovenfor, vil du oppdage at det er to fangstblokker. Den første tar en InputMismatchException argument; dette er navnet på unntaket som kastes hvis en verdi som ikke er heltall er angitt. Den andre tar en Unntak argument, og dette er viktig fordi formålet er å fange et unntak i koden som utvikleren ikke fant under testing.

I slekt: Java-unntak: Håndterer du dem riktig?

Testing av koden din

Du bør aldri undervurdere kraften til å teste og teste koden din før emballasje. Mange utviklere (og brukere av applikasjonene deres) finner nye feil etter at programvaren er tilgjengelig for publikum.

Hvis du tester koden din grundig, vil du sikre deg at applikasjonen din vil gjøre under alle tenkelige scenarier, og som gjør at du kan beskytte applikasjonen din mot brudd på data.

I slekt: Hvordan lander du din første programvare-testjobb

Tenk på eksemplet ovenfor. Hva om du etter fullføring bare tester applikasjonen med heltallverdier? Du kan gå bort fra applikasjonen og tro at du har identifisert alle potensielle feil når det ikke er tilfelle.

Faktum er at du kanskje ikke kan identifisere alle potensielle feil; det er derfor feilhåndtering fungerer hånd i hånd med å teste koden din. Testingen av programmet ovenfor viser at en potensiell feil vil oppstå i et bestemt scenario.

Men hvis det eksisterer noen andre feil som ikke dukket opp under testingen, vil den andre fangstblokken i koden ovenfor håndtere den.

Sikre databasen

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

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

De fleste databaser inneholder sensitive data. For å opprettholde integriteten til og begrense tilgangen til disse dataene er det ett krav om tilgangskontroll.

Adgangskontroll

Adgangskontroll søker å opprettholde integriteten til en database ved å definere typen personer som har tilgang til en database og begrense typen tilgang de har. Derfor skal et godt databasestyringssystem kunne logge hvem som får tilgang til databasen, når og hva de gjorde.

Det skal også kunne forhindre en registrert bruker i å få tilgang til eller redigere data som de ikke er autorisert til å samhandle med.

Programvaresikkerhet er en avgjørende ferdighet for alle utviklere

Å utvikle god programvare er synonymt med å sikre at programvaren din tåler ethvert ondsinnet angrep. Dette oppnås bare ved å skrive sikker kode, kontinuerlig testing av en applikasjon og opprettholde kontrollen over hvem som har tilgang til dataene dine.

Nå som du vet hvordan du skal sikre programvaren din, vil du kanskje lære om noen trinn for programvareutvikling.

E-post
6 trinn for programvareutvikling som alle programmerere burde vite

Forbereder du deg på å kode ditt første program? Sørg for å følge disse viktige trinnene for programvareutvikling.

Les Neste

Relaterte temaer
  • Programmering
  • Cybersikkerhet
  • Kodingstips
Om forfatteren
Kadeisha Kean (15 artikler publisert)

Kadeisha Kean er en full-stack programvareutvikler og teknisk / teknologiforfatter. Hun har den distinkte evnen til å forenkle noen av de mest komplekse teknologiske konseptene; produsere materiale som lett kan forstås av enhver nybegynner. Hun brenner for å skrive, utvikle interessant programvare og reise verden rundt (gjennom dokumentarer).

Mer fra Kadeisha Kean

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.