Varför är mjukvarusäkerhet en färdighet som alla programmerare borde ha?

Varför är mjukvarusäkerhet en färdighet som alla programmerare borde ha?

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

Programvarusäkerhet tar itu med 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 utvecklare kan ignorera en bugg, introducera nya buggar samtidigt som de fixar befintliga eller introducera nya sårbarheter genom uppdateringar.

Det finns dock två huvudmetoder som alla mjukvaruutvecklare kan använda för att säkerställa att de skapar säker programvara. Det handlar om att skriva säker kod från början och testa koden effektivt.

Varför är mjukvarusäkerhet en färdighet som alla programmerare borde ha?

Programvarusäkerhet spelar en oerhört viktig roll

Hur man skriver säker kod

Att skriva säker kod har bara en sak att göra - felhantering. Om du kan förutse varje potentiellt värde som användaren kan ge till applikationen och generera ett svar i programmet för det värdet, så 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 varje värde som din applikation kräver för att utföra en uppgift (godkända värden) och förstå att alla andra värden som kan finnas är icke godkända värden.

Skriv säker kod

Anta att du vill skapa ett program som endast accepterar två heltalsvärden från användaren och utför en additionsoperation på dem. Som en bra utvecklare vet du nu allt om din applikation. Du känner till alla värden som detta program kommer att acceptera (heltalsvärden) och du vet vilken uppgift detta program kommer att utföra (en additionsoperation).

Exempel på att skapa ett 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);
}
}

Ovanstående kod skapar en applikation som matchar kraven exakt. När den körs kommer den att producera följande rad i konsolen:

Please enter your two integer values:

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

Om användaren anger värdena 5 och 4 i konsolen, producerar programmet följande utdata:

The sum of the two integer values you entered: 9

Toppen. Programmet gör precis vad det ska göra. Men om en illvillig användare kommer in och anger ett icke-heltalsvärde, som "g", i din applikation, kommer det att uppstå ett problem. Det beror på att det inte finns någon kod i applikationen som skyddar mot ej godkända värden.

Vid denna tidpunkt kommer din applikation att krascha, vilket skapar en potentiell inkörsport till din applikation så att hackare vet exakt vad de ska göra härnäst.

Exempel på programsäkerhet

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

Ovanstående kod är säker eftersom den utför undantagshantering. Därför, om du anger ett icke-heltalsvärde, kommer programmet att generera följande kodrad:

Please enter a valid integer value.

Vad är undantagshantering?

Varför är mjukvarusäkerhet en färdighet som alla programmerare borde ha?

Undantagshantering

I huvudsak är undantagshantering den moderna versionen av felhantering, där du separerar felhanteringskoden från den vanliga hanteringskoden. I exemplet ovan finns all normal hanteringskod (eller potentiellt undantagsorsakande kod) i försöksblocket och all felhanteringskod finns i fångstblocket .

Om du tittar närmare på exemplet ovan ser du att det finns två fångstblock. Den första tar ett InputMismatchException -argument - detta är namnet på undantaget som kastas om ett icke-heltalsvärde anges. Det andra tar undantagsargumentet , och detta är viktigt eftersom dess syfte är att hitta eventuella undantag i koden som utvecklaren inte hittade under testningen.

Kontrollera koden

Du bör aldrig underskatta kraften i att testa och testa om kod. Många utvecklare (och appanvändare) hittar nya buggar efter att programvaran har gjorts tillgänglig för allmänheten.

Noggrann testning av din kod säkerställer att du vet vad din applikation kommer att göra i alla tänkbara situationer, och det gör att du kan skydda den från dataintrång.

Tänk på exemplet ovan. Vad händer om du, när den är klar, bara testar applikationen med heltalsvärden? Du kan lämna applikationen och tro att du har lyckats identifiera alla potentiella fel när du faktiskt inte har det.

Verkligheten är att du kanske inte kan identifiera alla potentiella fel. Det är därför felhantering fungerar tillsammans med att testa din kod. Att testa programmet ovan avslöjar ett potentiellt fel som kommer att uppstå i en viss situation.

Men om något annat fel som inte dök upp under testning finns, kommer det andra fångstblocket i koden ovan att hantera det.

Databassäkerhet

Om din applikation ansluter till en databas är det bästa sättet att förhindra åtkomst till den databasen att se till att alla aspekter av applikationen är säkra. Men vad händer om din applikation är designad 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 databaser användare att lägga till, hämta, uppdatera och ta bort data. Ett databashanteringssystem är ett program som tillåter användare att interagera direkt med en databas.

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

Åtkomstkontroll

Åtkomstkontroll strävar efter att upprätthålla databasens integritet genom att bestämma vilka typer av personer som kan komma åt databasen och begränsa vilken typ av åtkomst de har. Därför måste ett bra databashanteringssystem kunna registrera vem som har tillgång till databasen, när och vad de gjorde.

Det kan också förhindra registrerade användare från att komma åt eller redigera data som de inte har behörighet att interagera med.


Instruktioner för att använda Clonezilla för att klona Windows-hårddisk

Instruktioner för att använda Clonezilla för att klona Windows-hårddisk

Använd Clonezilla för att klona hela din gamla hårddisk till en ny hårddisk snabbt och mycket enkelt. Den här artikeln visar dig hur du klona Windows 10-enhet med Clonezilla och ett USB-minne.

Samling av mer än 40 högupplösta Thanos-bakgrundsbilder för datorer

Samling av mer än 40 högupplösta Thanos-bakgrundsbilder för datorer

Uppsättningen av Thanos-bakgrundsbilder i den här artikeln kommer att vara tillgänglig i alla upplösningar för alla datorer och bärbara datorer

Skillnaden mellan antivirus- och anti-malware-program

Skillnaden mellan antivirus- och anti-malware-program

Verktyg för borttagning av skadlig programvara och antivirusprogram kompletterar varandra och kan arbeta tillsammans för att säkerställa maximal säkerhet på användarnas enheter.

FortiClient-recension: Cross-Platform Free Antivirus Program

FortiClient-recension: Cross-Platform Free Antivirus Program

FortiClient är en gratis antivirusprodukt från Fortinet. Fortinet är känt för att tillverka hårdvaruprodukter för cybersäkerhet. FortiClient är ett plattformsoberoende program, tillgängligt för Windows, macOS, Linux, Windows Phone, iOS och Android.

Fix Kan inte öppna det här objektfelet i Windows

Fix Kan inte öppna det här objektfelet i Windows

Om du använder Windows får du felmeddelandet Kan inte öppna det här objektet. Det kan ha flyttats, bytt namn eller tagits bort, vad ska jag göra? Vänligen följ artikeln nedan för mer information.

Vad är KRACK? Hur KRACK bröt WPA2 WiFi-säkerhetsprotokollet

Vad är KRACK? Hur KRACK bröt WPA2 WiFi-säkerhetsprotokollet

Forskaren Mathy Vanhoef från universitetet i Leuven har upptäckt en allvarlig säkerhetsbrist i nätverkssäkerhetsprotokollet Wi-Fi Protected Access II (WPA2).

Vanliga frågor om standardlösenord

Vanliga frågor om standardlösenord

I dagens artikel kommer Quantrimang att sammanfatta några vanliga frågor om standardlösenord för att hjälpa läsarna att svara på frågor relaterade till detta problem.

Varför använda CyberGhost VPN?

Varför använda CyberGhost VPN?

Vad du behöver är en VPN – vilket gör de olika alternativen enkla, och CyberGhost VPN är en av de bästa VPN:erna när det kommer till enkelhet.

Top 3 multicloud säkerhetsutmaningar och hur man bygger en strategi

Top 3 multicloud säkerhetsutmaningar och hur man bygger en strategi

Ett antal bästa metoder för säkerhet har dykt upp i och med framväxten av multimolnmiljöer, och det finns några viktiga steg som alla organisationer bör ta när de utvecklar sina egna säkerhetsstrategier.

Installera dynamiska skärmar och animerade bakgrundsbilder på Windows

Installera dynamiska skärmar och animerade bakgrundsbilder på Windows

I Microsofts Windows Vista operativsystem tillät DreamScene att ställa in dynamiska bakgrunder för datorer, men åtta år senare är det fortfarande inte tillgängligt på Windows 10. Varför har denna sed representerat en tillbakagång till det förflutna under åren, och vad kan vi göra för att ändra på detta?