Als Programmierer oder Entwickler kann die Bedeutung der Erstellung sicherer Anwendungen nicht genug betont werden.
Die Software-Sicherheit befasst sich mit der Verwaltung böswilliger Angriffe, indem potenzielle Sicherheitslücken in der Software identifiziert und die erforderlichen Vorkehrungen getroffen werden, um sich vor diesen zu schützen.
Software kann niemals 100% sicher sein, da ein Entwickler einen Fehler übersehen, neue Fehler erstellen kann, um vorhandene Fälle zu beheben, oder neue Sicherheitslücken durch Updates erstellen kann.
Es gibt jedoch zwei wichtige Vorgehensweisen, die alle Softwareentwickler anwenden können, um sicherzustellen, dass sie in erster Linie sicheren Softwarewriting-Code erstellen und Ihren Code effizient testen.
So schreiben Sie sicheren Code
Das Schreiben von sicherem Code hängt von einer Fehlerbehandlung ab. Wenn Sie jeden potenziellen Wert vorhersehen können, den ein Benutzer Ihrer Anwendung zuführen könnte, und in Ihrem Programm eine Antwort auf diesen Wert erstellen können, schreiben Sie sicheren Code.
Dies ist viel einfacher als Sie vielleicht denken, da alle guten Entwickler fast alles über die von ihnen entwickelten Anwendungen wissen. Daher sollten Sie jeden Wert kennen, den Ihre Anwendung zur Ausführung einer Aufgabe benötigt (die genehmigten Werte), und verstehen, dass jeder andere mögliche Wert ein nicht genehmigter Wert ist.
Sicheren Code schreiben
Angenommen, Sie möchten ein Programm erstellen, das nur zwei ganzzahlige Werte von einem Benutzer akzeptiert und eine Additionsoperation für diese ausführt. Mit diesem einzigen Satz wissen Sie jetzt wie bei einem guten Entwickler 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).
Erstellen des Programms in Java Beispiel
importiere java.util. Scanner;
öffentliche Klasse Main {
// Die Hauptfunktion, die das Programm ausführt und die beiden Werte sammelt
public static void main (String [] args) {
System.out.println ("Bitte geben Sie Ihre zwei ganzzahligen Werte ein:");
int value1;
int value2;
Scannereingabe = neuer Scanner (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
Addition (Wert1, Wert2);
input.close ();
}
// die Funktion, die die beiden Werte sammelt und ihre Summe anzeigt
private statische Leerenaddition (int value1, int value2) {
int sum;
Summe = Wert1 + Wert2;
System.out.println ("Die Summe der beiden von Ihnen eingegebenen Ganzzahlwerte:" + Summe);
}
}
Der obige Code erzeugt eine Anwendung, die genau den Anforderungen entspricht. Bei der Ausführung wird die folgende Zeile in der Konsole angezeigt:
Bitte geben Sie Ihre zwei ganzzahligen Werte ein:
Die Anwendung bleibt dann angehalten, bis der Benutzer zwei ganzzahlige Werte in die Konsole eingibt (dh den ersten Wert eingeben, die Eingabetaste drücken und wiederholen).
Wenn der Benutzer die Werte eingibt 5 und 4 In der Konsole erzeugt das Programm die folgende Ausgabe:
Die Summe der beiden von Ihnen eingegebenen Ganzzahlwerte: 9
Das ist toll; Das Programm macht genau das, was es tun soll. Wenn jedoch ein schändlicher Benutzer vorbeikommt und einen nicht ganzzahligen Wert wie "g" in Ihre Anwendung eingibt, treten Probleme auf. Dies liegt daran, dass kein Code in der Anwendung vor nicht genehmigten Werten schützt.
Zu diesem Zeitpunkt stürzt Ihre Anwendung ab und erstellt ein potenzielles Gateway für den Hacker, der genau weiß, was als Nächstes zu tun ist.
Sichern Ihres Programmbeispiels
importiere java.util. InputMismatchException;
importiere java.util. Scanner;
öffentliche Klasse Main {
// Die Hauptfunktion, die das Programm ausführt und die beiden Werte sammelt
public static void main (String [] args) {
Versuchen {
System.out.println ("Bitte geben Sie Ihre zwei ganzzahligen Werte ein:");
int value1;
int value2;
// Verwenden der Scannerklasse zum Lesen jeder Eingabe vom Benutzer,
// und ordne es der jeweiligen Variablen zu (löst eine Ausnahme aus, wenn die Werte keine ganzen Zahlen sind)
Scannereingabe = neuer Scanner (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
// ruft die Additionsfunktion auf und übergibt die beiden Werte an sie
Addition (Wert1, Wert2);
// schließt den Eingabestream, nachdem er seine Verwendung beendet hat
input.close ();
// Behandle alle Fehler, die im try-Block ausgelöst werden
} catch (InputMismatchException e) {
System.out.println ("Bitte geben Sie einen gültigen ganzzahligen Wert ein.");
} catch (Ausnahme e) {
System.out.println (e.getMessage ());
}
}
// die Funktion, die die beiden Werte sammelt und ihre Summe anzeigt
private statische Leerenaddition (int value1, int value2) {
int sum;
Summe = Wert1 + Wert2;
System.out.println ("Die Summe der beiden von Ihnen eingegebenen Ganzzahlwerte:" + Summe);
}
}
Der obige Code ist sicher, da er die Ausnahmebehandlung ausführt. Wenn Sie einen nicht ganzzahligen Wert eingeben, wird das Programm daher korrekt beendet, während die folgende Codezeile erstellt wird:
Bitte geben Sie einen gültigen ganzzahligen Wert ein.
Was ist Ausnahmebehandlung?
Im Wesentlichen ist die Ausnahmebehandlung die moderne Version der Fehlerbehandlung, bei der Sie den Fehlerbehandlungscode vom normalen Verarbeitungscode trennen. Im obigen Beispiel befindet sich der gesamte normale Verarbeitungscode (oder Code, der möglicherweise eine Ausnahme auslösen kann) innerhalb von a Versuchen blockieren, und der gesamte Fehlerbehandlungscode befindet sich innerhalb Fang Blöcke.
Wenn Sie sich das obige Beispiel genauer ansehen, werden Sie feststellen, dass es zwei Fangblöcke gibt. Der erste nimmt eine InputMismatchException Streit; Dies ist der Name der Ausnahme, die ausgelöst wird, wenn ein nicht ganzzahliger Wert eingegeben wird. Der zweite nimmt eine Ausnahme Dies ist wichtig, da der Zweck darin besteht, Ausnahmen innerhalb des Codes abzufangen, die der Entwickler beim Testen nicht gefunden hat.
Verbunden: Java-Ausnahmen: Behandeln Sie sie richtig?
Testen Sie Ihren Code
Sie sollten die Fähigkeit, Ihren Code vor dem Verpacken zu testen und erneut zu testen, niemals unterschätzen. Viele Entwickler (und Benutzer ihrer Anwendungen) finden neue Fehler, nachdem die Software der Öffentlichkeit zugänglich ist.
Durch gründliches Testen Ihres Codes wird sichergestellt, dass Sie wissen, was Ihre Anwendung in jedem denkbaren Szenario tun wird, und dass Sie Ihre Anwendung vor Datenverletzungen schützen können.
Verbunden: So landen Sie Ihren ersten Software-Testjob
Betrachten Sie das obige Beispiel. Was ist, wenn Sie die Anwendung nach Abschluss nur mit ganzzahligen Werten testen? Sie könnten sich von der Anwendung entfernen und denken, Sie hätten alle potenziellen Fehler erfolgreich identifiziert, wenn dies nicht der Fall ist.
Tatsache ist, dass Sie möglicherweise nicht alle potenziellen Fehler identifizieren können. Aus diesem Grund geht die Fehlerbehandlung Hand in Hand mit dem Testen Ihres Codes. Das Testen des obigen Programms zeigt, dass in einem bestimmten Szenario ein potenzieller Fehler auftritt.
Wenn jedoch ein anderer Fehler vorliegt, der beim Testen nicht aufgetreten ist, wird er vom zweiten Catch-Block im obigen Code behandelt.
Sichern Ihrer Datenbank
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 Ihrer Anwendung sicher sind. Was ist jedoch, wenn Ihre Anwendung ausschließlich zum Zweck der Bereitstellung einer Schnittstelle zu dieser Datenbank entwickelt wurde?
Hier wird es etwas interessanter. In ihrer einfachsten Form ermöglicht eine Datenbank einem Benutzer das Hinzufügen, Abrufen, Aktualisieren und Löschen von Daten. Ein Datenbankverwaltungssystem ist eine Anwendung, mit der ein Benutzer direkt mit einer Datenbank interagieren kann.
Die meisten Datenbanken enthalten vertrauliche Daten. Um die Integrität dieser Daten zu gewährleisten und den Zugriff auf diese Daten zu beschränken, ist eine Zugriffssteuerung erforderlich.
Zugangskontrolle
Die Zugriffssteuerung versucht, die Integrität einer Datenbank aufrechtzuerhalten, indem die Art der Personen definiert wird, die auf eine Datenbank zugreifen können, und die Art des Zugriffs eingeschränkt wird. Daher sollte ein gutes Datenbankverwaltungssystem in der Lage sein zu protokollieren, wer zu welcher Zeit und zu welchen Zeiten auf die Datenbank zugreift.
Es sollte auch verhindern können, dass ein registrierter Benutzer auf Daten zugreift oder diese bearbeitet, mit denen er nicht interagieren darf.
Software-Sicherheit ist eine entscheidende Fähigkeit für alle Entwickler
Die Entwicklung guter Software ist gleichbedeutend mit der Sicherstellung, dass Ihre Software böswilligen Angriffen standhält. Dies ist nur durch das Schreiben von sicherem Code, das kontinuierliche Testen einer Anwendung und die Kontrolle darüber, wer Zugriff auf Ihre Daten hat, möglich.
Nachdem Sie nun wissen, wie Sie Ihre Software sichern können, möchten Sie möglicherweise einige Schritte zur Softwareentwicklung kennenlernen.
Bereiten Sie sich darauf vor, Ihr erstes Programm zu programmieren? Befolgen Sie unbedingt diese wichtigen Schritte zur Softwareentwicklung.
Weiter lesen
- Programmierung
- Onlinesicherheit
- Codierungstipps
Kadeisha Kean ist ein Full-Stack-Softwareentwickler und technischer / technologischer Redakteur. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen. Herstellung von Material, das von jedem Technologie-Neuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gern, entwickelt interessante Software und bereist die Welt (durch Dokumentarfilme).
Abonnieren Sie unseren Newsletter
Melden Sie sich für unseren Newsletter an, um technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote zu erhalten!
Noch ein Schritt…!
Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.