Programozóként vagy fejlesztőként a biztonságos alkalmazások létrehozásának fontosságát nem lehet lebecsülni.

A szoftverbiztonság a rosszindulatú támadások kezelésével foglalkozik a szoftver lehetséges sérülékenységeinek azonosításával és az ezek elleni védekezéshez szükséges óvintézkedések megtételével.

A szoftver soha nem lehet 100% -osan biztonságos, mert a fejlesztő figyelmen kívül hagyhatja a hibát, új hibákat hozhat létre a meglévő esetek kijavítására, vagy új biztonsági réseket hozhat létre frissítések révén.

Mindazonáltal két kulcsfontosságú gyakorlat van, amelyet minden szoftverfejlesztő alkalmazhat annak biztosítására, hogy elsősorban biztonságos szoftverírást biztosító kódot hozzanak létre, és hatékonyan teszteljék a kódot.

Hogyan kell írni a biztonságos kódot

A biztonságos kód írása egy dolog hibájának kezelésére vezethető vissza. Ha számíthat minden lehetséges értékre, amelyet a felhasználó betáplálhat az alkalmazásába, és választ hozhat létre a programban erre az értékre, akkor biztonságos kódot ír.

Ez sokkal egyszerűbb, mint gondolná, mert minden jó fejlesztő szinte mindent tud az általuk fejlesztett alkalmazásokról. Ezért tudnia kell minden olyan értéket, amelyre az alkalmazásnak szüksége van egy feladat végrehajtásához (a jóváhagyott értékeket), és meg kell értenie, hogy a létező minden más lehetséges érték jóváhagyatlan érték.

Biztonságos kód írása

Tegyük fel, hogy olyan programot szeretne létrehozni, amely csak két egész értéket fogad el a felhasználótól, és kiegészítési műveletet hajt végre rajtuk. Ezzel az egyetlen mondattal, mint egy jó fejlesztő, most már mindent tud az alkalmazásáról. Ismeri az összes értéket, amelyet ez a program elfogad (egész értékek), és ismeri azt a feladatot, amelyet a program elvégez (kiegészítési művelet).

A program létrehozása Java példában


import java.util. Scanner;
nyilvános osztály Fő {
// A fő funkció, amely végrehajtja a programot és összegyűjti a két értéket
public static void main (String [] érvel) {
System.out.println ("Kérjük, adja meg a két egész értéket:");
int értéke1;
int értéke2;
Szkenner bemenet = új szkenner (System.in);
érték1 = input.nextInt ();
érték2 = input.nextInt ();
összeadás (érték1, érték2);
input.close ();
}
// a két értéket összegyűjtő és összegüket megjelenítő függvény
private static void hozzáadás (int érték1, int érték2) {
int összeg;
összeg = érték1 + érték2;
System.out.println ("A megadott két egész érték összege:" + összeg);
}
}

A fenti kód egy olyan alkalmazást hoz létre, amely pontosan megfelel a követelményeknek. A végrehajtáskor a következő sort állítja elő a konzolban:


Kérjük, adja meg a két egész értéket:

Az alkalmazás addig szünetel, amíg a felhasználó két egész értéket be nem ír a konzolba (ez azt jelenti, hogy beírja az első értéket, lenyomja az Enter billentyűt és megismétli).

Ha a felhasználó megadja az értékeket 5 és 4 a konzolon a program a következő kimenetet hozza létre:


A megadott két egész szám összege: 9

Ez óriási; a program pontosan azt csinálja, amit tennie kellene. Ha azonban egy aljas felhasználó jön, és nem egész számot (például „g”) ír be az alkalmazásba, akkor problémák merülnek fel. Az alkalmazásban ugyanis egyetlen kód sem véd a jóváhagyatlan értékek ellen.

Ezen a ponton az alkalmazás összeomlik, és potenciális átjárót hoz létre az alkalmazás számára a hacker számára, amely pontosan tudja, mit kell tennie.

Biztosítsa a program példáját


import java.util. InputMismatchException;
import java.util. Scanner;
nyilvános osztály Fő {
// A fő funkció, amely végrehajtja a programot és összegyűjti a két értéket
public static void main (String [] érvel) {
próbáld ki {
System.out.println ("Kérjük, adja meg a két egész értéket:");
int értéke1;
int értéke2;
// a szkenner osztály használatával olvassa el a felhasználó minden bemenetét,
// és hozzárendeljük a megfelelő változóhoz (kivételt dob, ha az értékek nem egész számok)
Szkenner bemenet = új szkenner (System.in);
érték1 = input.nextInt ();
érték2 = input.nextInt ();
// meghívja az addíciós függvényt és átadja neki a két értéket
összeadás (érték1, érték2);
// bezárja a bemeneti adatfolyamot, miután elérte a használatának végét
input.close ();
// kezeli a try blokkban dobott összes hibát
} catch (InputMismatchException e) {
System.out.println ("Kérjük, adjon meg egy érvényes egész értéket.");
} fogás (e kivétel) {
System.out.println (e.getMessage ());
}
}
// a két értéket összegyűjtő és összegüket megjelenítő függvény
private static void hozzáadás (int érték1, int érték2) {
int összeg;
összeg = érték1 + érték2;
System.out.println ("A megadott két egész érték összege:" + összeg);
}
}

A fenti kód biztonságos, mert kivételkezelést végez. Ezért ha nem egész értéket ad meg, a program helyesen fejeződik be, miközben a következő kódsort állítja elő:


Kérjük, adjon meg egy érvényes egész értéket.

Mi a kivételkezelés?

Lényegében a kivételkezelés a hibakezelés modern változata, ahol a hibakezelési kódot elkülöníti a normál feldolgozási kódtól. A fenti példában az összes normál feldolgozási kód (vagy olyan kód, amely kivételt okozhat) az a-n belül található próbáld ki blokk, és az összes hibakezelő kód benne van fogás blokkok.

Ha jobban megnézi a fenti példát, akkor azt tapasztalja, hogy két elkapási blokk van. Az első egy InputMismatchException érv; ez annak a kivételnek a neve, amelyet nem egész érték megadása esetén dobnak el. A második egy Kivétel argumentum, és ez azért fontos, mert célja minden olyan kivétel megfogása a kódban, amelyet a fejlesztő nem talált a tesztelés során.

Összefüggő: Java kivételek: Jól kezeled őket?

A kód tesztelése

Soha nem szabad lebecsülni a kód tesztelésének és tesztelésének erejét csomagolás előtt. Számos fejlesztő (és alkalmazásainak felhasználója) új hibákat talál, miután a szoftver elérhetővé vált a nyilvánosság számára.

A kód alapos tesztelésével biztosíthatja, hogy minden elképzelhető forgatókönyv esetén tudja, mit fog tenni az alkalmazása, és ez lehetővé teszi, hogy megvédje alkalmazását az adatmegsértésekkel szemben.

Összefüggő: Hogyan juthat el az első szoftver tesztelő munkához

Tekintsük a fenti példát. Mi lenne, ha a befejezés után csak egész értékekkel tesztelné az alkalmazást? Lehet, hogy elmegy az alkalmazástól, és úgy gondolja, hogy sikeresen azonosította az összes lehetséges hibát, ha nem ez a helyzet.

A helyzet az, hogy nem feltétlenül tudja azonosítani az összes lehetséges hibát; ezért működik a hibakezelés a kód tesztelésével együtt. A fenti program tesztelése azt mutatja, hogy egy adott helyzetben egy lehetséges hiba lép fel.

Ha azonban létezik valamilyen más hiba, amely a tesztelés során nem jelent meg, akkor a fenti kód második fogási blokkja kezeli azt.

Az adatbázis biztonsága

Ha az alkalmazás csatlakozik egy adatbázishoz, akkor az adatbázis elérésének megakadályozásának legjobb módja az, ha az alkalmazás minden aspektusát biztonságban tartja. Mi történik azonban akkor, ha az alkalmazásod egyetlen célja, hogy interfészt biztosítson az említett adatbázishoz?

Itt a dolgok kicsit érdekesebbé válnak. A legalapvetőbb formájában az adatbázis lehetővé teszi a felhasználó számára adatok hozzáadását, visszakeresését, frissítését és törlését. Az adatbázis-kezelő rendszer olyan alkalmazás, amely lehetővé teszi a felhasználó számára, hogy közvetlenül interakcióba lépjen egy adatbázissal.

A legtöbb adatbázis érzékeny adatokat tartalmaz, ezért az adatok integritásának fenntartása és az azokhoz való hozzáférés korlátozása érdekében egyetlen követelmény a hozzáférés-ellenőrzés.

Hozzáférés-szabályozás

A hozzáférés-ellenőrzés az adatbázis integritásának fenntartására törekszik azáltal, hogy meghatározza az adatbázisba belépő emberek típusát, és korlátozza a rendelkezésükre álló hozzáférés típusát. Ezért egy jó adatbázis-kezelő rendszernek képesnek kell lennie arra, hogy naplózza, ki, mikor és mit tett az adatbázishoz.

Azt is meg kell akadályoznia, hogy egy regisztrált felhasználó hozzáférjen vagy szerkessze azokat az adatokat, amelyekkel nem jogosult a kölcsönhatásra.

A szoftverbiztonság kulcsfontosságú készség minden fejlesztő számára

A jó szoftver fejlesztése egyet jelent annak biztosításával, hogy a szoftvere képes ellenállni minden rosszindulatú támadásnak. Ez csak a biztonságos kód megírásával, az alkalmazás folyamatos tesztelésével és annak ellenőrzésével érhető el, hogy ki férhet hozzá az Ön adataihoz.

Most, hogy ismeri a szoftver biztonságát, érdemes megismernie néhány szoftverfejlesztési lépést.

Email
6 szoftverfejlesztési lépés, amelyet minden programozónak tudnia kell

Előkészíti az első program kódolását? Feltétlenül kövesse ezeket a legfontosabb szoftverfejlesztési lépéseket.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Kiberbiztonság
  • Kódolási tippek
A szerzőről
Kadeisha Kean (15 cikk megjelent)

Kadeisha Kean Full-Stack szoftverfejlesztő és műszaki / technológiai író. Különleges képessége van a legösszetettebb technológiai koncepciók egyszerűsítésére; bármilyen technológiai kezdő számára könnyen érthető anyag előállítása. Szenvedélyes az írás, az érdekes szoftverek fejlesztése és a világ körüli utazás (dokumentumfilmek révén).

Több Kadeisha Kean-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.