Som programmerare eller utvecklare kan vikten av att skapa säkra applikationer inte överdrivas.

Mjukvarusäkerhet hanterar hanteringen av skadliga attacker genom att identifiera potentiella sårbarheter i programvaran och vidta nödvändiga försiktighetsåtgärder för att skydda dem.

Programvara kan aldrig vara 100% säker eftersom en utvecklare kan förbise ett fel, skapa nya buggar i ett försök att fixa befintliga ärenden eller skapa nya sårbarheter genom uppdateringar.

Det finns emellertid två viktiga metoder som alla programutvecklare kan använda för att säkerställa att de skapar säker mjukskrivning av säker kod i första hand och effektivt testar din kod.

Hur man skriver säker kod

Att skriva säker kod kommer ner till en hantering av fingerfelet. Om du kan förutse alla potentiella värden som en användare kan mata din applikation och skapa ett svar i ditt program för det värdet, skriver du säker kod.

Detta är mycket enklare än du kanske tror eftersom alla bra utvecklare vet nästan allt om de applikationer de utvecklar. Därför bör du känna till alla värden som din ansökan kräver för att utföra en uppgift (de godkända värdena) och förstå att alla andra möjliga värden som finns är ett icke godkänt värde.

instagram viewer

Skriva säker kod

Låt oss säga att du vill skapa ett program som endast accepterar två heltal från en användare och utför en tilläggsoperation på dem. Med den enda meningen, som en bra utvecklare, vet du nu allt om din ansökan. Du känner till alla värden som detta program accepterar (heltal) och du vet vilken uppgift som programmet kommer att slutföra (en tilläggsoperation).

Skapa programmet i Java Exempel


importera java.util. Scanner;
allmän klass Main {
// Huvudfunktionen som kör programmet och samlar de två värdena
public static void main (String [] args) {
System.out.println ("Ange dina två heltal:");
int värde1;
int värde2;
Skannerinmatning = ny skanner (System.in);
värde1 = input.nextInt ();
värde2 = input.nextInt ();
addition (värde1, värde2);
input.close ();
}
// funktionen som samlar de två värdena och visar deras summa
privat statisk ogiltigt tillägg (int värde1, int värde2) {
int summa;
summa = värde1 + värde2;
System.out.println ("Summan av de två heltalsvärden du angav:" + summa);
}
}

Koden ovan producerar en applikation som exakt matchar kraven. Vid körning kommer den att producera följande rad i konsolen:


Ange dina två heltal:

Applikationen förblir sedan pausad tills användaren anger två heltal i konsolen (det innebär att skriva det första värdet, trycka på Enter-tangenten och upprepa).

Om användaren anger värdena 5 och 4 i konsolen kommer programmet att producera följande utdata:


Summan av de två heltalsvärdena du angav: 9

Det här är bra; programmet gör exakt vad det ska göra. Men om en illvillig användare kommer och anger ett icke-heltal värde, som "g", i din applikation kommer det att finnas problem. Detta beror på att ingen kod i applikationen skyddar mot icke godkända värden.

Vid denna tidpunkt kommer din applikation att krascha och skapa en potentiell gateway till din applikation för hackaren som vet exakt vad den ska göra nästa.

Säkra ditt programexempel


importera java.util. InputMismatchException;
importera java.util. Scanner;
allmän klass Main {
// Huvudfunktionen som kör programmet och samlar de två värdena
public static void main (String [] args) {
Prova {
System.out.println ("Ange dina två heltal:");
int värde1;
int värde2;
// använder skannerklassen för att läsa varje inmatning från användaren,
// och tilldela den till är respektive variabel (kastar ett undantag om värdena inte är heltal)
Skannerinmatning = ny skanner (System.in);
värde1 = input.nextInt ();
värde2 = input.nextInt ();
// kallar tilläggsfunktionen och skickar de två värdena till den
addition (värde1, värde2);
// stänger ingångsströmmen efter att den har avslutats
input.close ();
// hantera alla fel som kastats i försöksblocket
} fånga (InputMismatchException e) {
System.out.println ("Ange ett giltigt heltalvärde.");
} fånga (Undantag e) {
System.out.println (e.getMessage ());
}
}
// funktionen som samlar de två värdena och visar deras summa
privat statisk ogiltigt tillägg (int värde1, int värde2) {
int summa;
summa = värde1 + värde2;
System.out.println ("Summan av de två heltalsvärden du angav:" + summa);
}
}

Koden ovan är säker eftersom den utför undantagshantering. Därför, om du anger ett icke-heltal kommer programmet att avslutas korrekt medan du producerar följande kodrad:


Ange ett giltigt heltal.

Vad är undantagshantering?

I grund och botten är undantagshantering den moderna versionen av felhantering, där du separerar felhanteringskod från normal bearbetningskod. I exemplet ovan ligger all normal bearbetningskod (eller kod som potentiellt kan kasta ett undantag) inom en Prova blockera, och all felhanteringskod finns inom fånga block.

Om du tittar närmare på exemplet ovan ser du att det finns två fångstblock. Den första tar en InputMismatchException argument; detta är namnet på undantaget som kastas om ett icke-helvärde anges. Den andra tar en Undantag argument, och detta är viktigt eftersom dess syfte är att fånga alla undantag inom koden som utvecklaren inte hittade under testningen.

Relaterad: Java-undantag: hanterar du dem rätt?

Testa din kod

Du bör aldrig underskatta kraften i att testa och testa om din kod före förpackningen. Många utvecklare (och användare av deras applikationer) hittar nya buggar efter att programvaran är tillgänglig för allmänheten.

Genom att noggrant testa din kod ser du till att du vet vad din applikation kommer att göra under alla tänkbara scenarier, och det gör att du kan skydda din applikation från dataintrång.

Relaterad: Hur du landar ditt första testprogram för programvara

Tänk på exemplet ovan. Vad händer om du efter testet bara testar applikationen med heltalvärden? Du kan gå bort från applikationen och tro att du framgångsrikt identifierat alla potentiella fel när så inte är fallet.

Faktum är att du kanske inte kan identifiera alla potentiella fel; det är därför felhantering fungerar hand i hand med att testa din kod. Testerna av programmet ovan visar att ett potentiellt fel kommer att inträffa i ett specifikt scenario.

Men om det finns några andra fel som inte visades under testningen kommer det andra fångstblocket i koden ovan att hantera det.

Säkra din databas

Om din applikation ansluter till en databas är det bästa sättet att förhindra åtkomst till databasen att se till att alla aspekter av din applikation är säkra. Men vad händer om din applikation är utformad med det enda syftet att tillhandahålla ett gränssnitt till nämnda databas?

Det är här saker och ting blir lite mer intressanta. I sin mest grundläggande form tillåter en databas en användare att lägga till, hämta, uppdatera och ta bort data. Ett databashanteringssystem är ett program som gör det möjligt för en användare att interagera direkt med en databas.

De flesta databaser innehåller känsliga data, så för att upprätthålla integriteten och begränsa åtkomsten till dessa data finns det ett krav på åtkomstkontroll.

Åtkomstkontroll

Åtkomstkontroll syftar till att upprätthålla integriteten hos en databas genom att definiera vilken typ av personer som kan komma åt en databas och begränsa vilken typ av åtkomst de har. Därför bör ett bra databashanteringssystem kunna logga vem som får åtkomst till databasen, vid vilken tidpunkt och vad de gjorde.

Det bör också kunna förhindra en registrerad användare från att komma åt eller redigera data som de inte har behörighet att interagera med.

Mjukvarusäkerhet är en avgörande skicklighet för alla utvecklare

Att utveckla bra programvara är synonymt med att se till att din programvara tål alla skadliga attacker. Detta uppnås endast genom att skriva säker kod, kontinuerlig testning av en applikation och bibehålla kontrollen över vem som har tillgång till dina data.

Nu när du vet hur du skyddar din programvara kanske du vill lära dig mer om några programutvecklingssteg.

E-post
6 steg för programutveckling som alla programmerare borde veta

Förbereder du dig för att koda ditt första program? Var noga med att följa dessa viktiga steg för programutveckling.

Läs Nästa

Relaterade ämnen
  • Programmering
  • Cybersäkerhet
  • Kodningstips
Om författaren
Kadeisha Kean (15 artiklar publicerade)

Kadeisha Kean är en full-stack programvaruutvecklare och teknisk / teknikförfattare. Hon har den distinkta förmågan att förenkla några av de mest komplexa tekniska begreppen; producera material som lätt kan förstås av alla nybörjare. Hon brinner för att skriva, utveckla intressant programvara och resa runt i världen (genom dokumentärer).

Mer från Kadeisha Kean

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.