Als Programmierer oder Entwickler darf die Bedeutung der Erstellung sicherer Anwendungen nicht übersehen werden.
Softwaresicherheit befasst sich mit der Bewältigung böswilliger Angriffe, indem potenzielle Schwachstellen in der Software identifiziert und die erforderlichen Vorkehrungen zu deren Schutz getroffen werden.
Software kann niemals 100 % sicher sein, da Entwickler einen Fehler ignorieren, neue Fehler einführen, während sie bestehende beheben, oder neue Schwachstellen durch Updates einführen können.
Es gibt jedoch zwei Hauptmethoden, mit denen alle Softwareentwickler sicherstellen können, dass sie sichere Software erstellen. Es geht darum, von Anfang an sicheren Code zu schreiben und den Code effektiv zu testen.

Softwaresicherheit spielt eine äußerst wichtige Rolle
So schreiben Sie sicheren Code
Das Schreiben von sicherem Code hat nur eine Aufgabe: Fehlerbehandlung. Wenn Sie jeden potenziellen Wert, den der Benutzer der Anwendung bereitstellen kann, vorhersehen und im Programm eine Antwort für diesen Wert generieren können, schreiben Sie sicheren Code.
Das ist viel einfacher, als Sie vielleicht denken, da alle guten Entwickler fast alles über die Anwendungen wissen, die sie entwickeln. Daher sollten Sie jeden Wert kennen, den Ihre Anwendung zum Ausführen einer Aufgabe benötigt (genehmigte Werte) und verstehen, dass alle anderen möglicherweise vorhandenen Werte nicht genehmigte Werte sind.
Schreiben Sie sicheren Code
Angenommen, Sie möchten ein Programm erstellen, das nur zwei ganzzahlige Werte vom Benutzer akzeptiert und eine Additionsoperation für diese ausführt. Als guter Entwickler wissen Sie jetzt alles über Ihre Anwendung. Sie kennen alle Werte, die dieses Programm akzeptiert (ganzzahlige Werte) und Sie kennen die Aufgabe, die dieses Programm ausführen wird (eine Additionsoperation).
Beispiel für die Erstellung eines Programms in 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);
}
}
Der obige Code erstellt eine Anwendung, die genau den Anforderungen entspricht. Bei der Ausführung wird die folgende Zeile in der Konsole angezeigt:
Please enter your two integer values:
Die Anwendung bleibt dann angehalten, bis der Benutzer zwei ganzzahlige Werte in die Konsole eingibt (d. h. den ersten Wert eingeben, die Eingabetaste drücken und wiederholen).
Gibt der Benutzer in der Konsole die Werte 5 und 4 ein , erzeugt das Programm folgende Ausgabe:
The sum of the two integer values you entered: 9
Das ist großartig. Das Programm macht genau das, was es tun soll. Wenn jedoch ein böswilliger Benutzer hereinkommt und einen nicht ganzzahligen Wert wie „g“ in Ihre Anwendung eingibt, entsteht ein Problem. Dies liegt daran, dass die Anwendung keinen Code enthält, der vor nicht genehmigten Werten schützt.
An diesem Punkt stürzt Ihre Anwendung ab und schafft ein potenzielles Einfallstor in Ihre Anwendung, sodass Hacker genau wissen, was als nächstes zu tun ist.
Beispiel für Programmsicherheit
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);
}
}
Der obige Code ist sicher, da er eine Ausnahmebehandlung durchführt. Wenn Sie daher einen nicht ganzzahligen Wert eingeben, generiert das Programm die folgende Codezeile:
Please enter a valid integer value.
Was ist Ausnahmebehandlung?

Ausnahmebehandlung
Im Wesentlichen ist die Ausnahmebehandlung die moderne Version der Fehlerbehandlung, bei der Sie den Fehlerbehandlungscode vom regulären Behandlungscode trennen. Im obigen Beispiel befindet sich der gesamte normale Behandlungscode (oder potenziell ausnahmeverursachende Code) im Try -Block und der gesamte Fehlerbehandlungscode im Catch-Block.
Wenn Sie sich das obige Beispiel genauer ansehen, werden Sie feststellen, dass es zwei Catch-Blöcke gibt. Das erste akzeptiert ein InputMismatchException -Argument – dies ist der Name der Ausnahme, die ausgelöst wird, wenn ein nicht ganzzahliger Wert eingegeben wird. Das zweite Argument verwendet das Exception- Argument . Dies ist wichtig, da sein Zweck darin besteht, alle Ausnahmen im Code zu finden, die der Entwickler beim Testen nicht gefunden hat.
Überprüfen Sie den Code
Sie sollten niemals die Macht des Testens und erneuten Testens von Code unterschätzen. Viele Entwickler (und App-Benutzer) entdecken neue Fehler, nachdem die Software der Öffentlichkeit zugänglich gemacht wurde.
Durch gründliches Testen Ihres Codes stellen Sie sicher, dass Sie wissen, was Ihre Anwendung in jeder erdenklichen Situation tun wird, und können sie so vor Datenschutzverletzungen schützen.
Betrachten Sie das obige Beispiel. Was wäre, wenn Sie die Anwendung nach Abschluss nur noch mit ganzzahligen Werten testen würden? Möglicherweise verlassen Sie die Anwendung in dem Glauben, Sie hätten alle potenziellen Fehler erfolgreich identifiziert, obwohl dies in Wirklichkeit nicht der Fall ist.
Die Realität ist, dass Sie möglicherweise nicht alle potenziellen Fehler identifizieren können. Aus diesem Grund funktioniert die Fehlerbehandlung parallel zum Testen Ihres Codes. Das Testen des oben genannten Programms zeigt einen potenziellen Fehler, der in einer bestimmten Situation auftreten kann.
Wenn jedoch ein anderer Fehler vorliegt, der beim Testen nicht aufgetreten ist, wird er vom zweiten Catch-Block im obigen Code behandelt.
Datenbanksicherheit
Wenn Ihre Anwendung eine Verbindung zu einer Datenbank herstellt, können Sie den Zugriff auf diese Datenbank am besten verhindern, indem Sie sicherstellen, dass alle Aspekte der Anwendung sicher sind. Was aber, wenn Ihre Anwendung ausschließlich zu dem Zweck entwickelt wurde, eine Schnittstelle zu dieser Datenbank bereitzustellen?
Hier wird es etwas interessanter. In ihrer einfachsten Form ermöglichen Datenbanken Benutzern das Hinzufügen, Abrufen, Aktualisieren und Löschen von Daten. Ein Datenbankverwaltungssystem ist eine Anwendung, die es Benutzern ermöglicht, direkt mit einer Datenbank zu interagieren.
Die meisten Datenbanken enthalten sensible Daten. Um die Integrität zu wahren und den Zugriff auf diese Daten einzuschränken, gibt es daher eine Anforderung – Zugriffskontrolle.
Zugangskontrolle
Die Zugriffskontrolle zielt darauf ab, die Integrität der Datenbank aufrechtzuerhalten, indem sie die Arten von Personen bestimmt, die auf die Datenbank zugreifen können, und die Art des Zugriffs, den sie haben, einschränkt. Daher muss ein gutes Datenbankverwaltungssystem in der Lage sein, aufzuzeichnen, wer wann auf die Datenbank zugegriffen hat und was sie getan haben.
Es kann auch verhindern, dass registrierte Benutzer auf Daten zugreifen oder diese bearbeiten, für deren Interaktion sie nicht berechtigt sind.