Ako programátor alebo vývojár nemožno preceňovať význam vytvárania bezpečných aplikácií.

Softvérová bezpečnosť sa zaoberá správou škodlivých útokov tak, že identifikuje potenciálne chyby zabezpečenia v softvéri a prijíma potrebné preventívne opatrenia na ich ochranu.

Softvér nikdy nemôže byť stopercentne bezpečný, pretože vývojár môže prehliadnuť chybu, vytvárať nové chyby v snahe opraviť existujúce prípady alebo vytvoriť nové chyby zabezpečenia prostredníctvom aktualizácií.

Existujú však dva kľúčové postupy, ktoré môžu všetci vývojári softvéru použiť, aby zabezpečili, že na prvom mieste vytvoria zabezpečený softvérový zabezpečený kód, a efektívne ho otestujú.

Ako napísať bezpečný kód

Písanie zabezpečeného kódu závisí od jednej chyby. Ak dokážete predvídať všetky potenciálne hodnoty, ktoré by používateľ mohol vložiť do vašej aplikácie, a vytvoriť v programe odpoveď na túto hodnotu, píšete zabezpečený kód.

Je to oveľa jednoduchšie, ako by ste si mysleli, pretože všetci dobrí vývojári vedia takmer všetko o aplikáciách, ktoré vyvíjajú. Preto by ste mali poznať každú hodnotu, ktorú vaša aplikácia vyžaduje na vykonanie úlohy (schválené hodnoty), a uvedomiť si, že každá ďalšia možná hodnota, ktorá existuje, je hodnotou neschválenou.

instagram viewer

Písanie zabezpečeného kódu

Povedzme, že chcete vytvoriť program, ktorý od používateľa prijme iba dve celočíselné hodnoty a vykoná na nich operáciu sčítania. S touto jedinou vetou, ako správny vývojár, teraz viete všetko o svojej aplikácii. Poznáte všetky hodnoty, ktoré tento program bude akceptovať (celočíselné hodnoty), a poznáte úlohu, ktorú tento program dokončí (operácia sčítania).

Vytvorenie programu v prostredí Java Príklad


import java.util. Skener;
public class Main {
// Hlavná funkcia, ktorá vykonáva program a zhromažďuje dve hodnoty
public static void main (String [] args) {
System.out.println ("Zadajte svoje dve celočíselné hodnoty:");
int hodnota1;
int hodnota2;
Vstup do skenera = nový skener (System.in);
hodnota1 = input.nextInt ();
hodnota2 = input.nextInt ();
sčítanie (hodnota1; hodnota2);
input.close ();
}
// funkcia, ktorá zhromažďuje dve hodnoty a zobrazuje ich súčet
pridanie súkromného statického prázdna (int hodnota1, int hodnota2) {
int suma;
suma = hodnota1 + hodnota2;
System.out.println ("Súčet dvoch celočíselných hodnôt, ktoré ste zadali:" + súčet);
}
}

Vyššie uvedený kód produkuje aplikáciu, ktorá presne zodpovedá požiadavkám. Po vykonaní vytvorí v konzole nasledujúci riadok:


Zadajte svoje dve celočíselné hodnoty:

Aplikácia potom zostane pozastavená, kým používateľ nezadá do konzoly dve celočíselné hodnoty (to znamená zadanie prvej hodnoty, stlačenie klávesu Enter a opakovanie).

Ak užívateľ zadá hodnoty 5 a 4 v konzole program vyprodukuje nasledujúci výstup:


Súčet dvoch celočíselných hodnôt, ktoré ste zadali: 9

Toto je skvelé; program robí presne to, čo má robiť. Ak však dôjde k hanebnému používateľovi a do vašej aplikácie zadá neceločíselnú hodnotu, napríklad „g“, nastanú problémy. Je to tak preto, lebo žiadny kód v aplikácii nechráni pred neschválenými hodnotami.

V tomto okamihu dôjde k zlyhaniu vašej aplikácie a vytvorí sa tak potenciálna brána pre vašu aplikáciu pre hackerov, ktorá presne vie, čo má robiť ďalej.

Príklad zabezpečenia vášho programu


import java.util. InputMismatchException;
import java.util. Skener;
public class Main {
// Hlavná funkcia, ktorá vykonáva program a zhromažďuje dve hodnoty
public static void main (String [] args) {
skúsiť {
System.out.println ("Zadajte svoje dve celočíselné hodnoty:");
int hodnota1;
int hodnota2;
// použitie triedy skenera na prečítanie každého vstupu od používateľa,
// a priradiť ho k príslušnej premennej (vyvolá výnimku, ak hodnoty nie sú celé čísla)
Vstup do skenera = nový skener (System.in);
hodnota1 = input.nextInt ();
hodnota2 = input.nextInt ();
// zavolá funkciu sčítania a odovzdá jej dve hodnoty
sčítanie (hodnota1; hodnota2);
// uzavrie vstupný prúd po skončení jeho používania
input.close ();
// zvládne všetky chyby vyhodené v bloku try
} chytit (InputMismatchException e) {
System.out.println ("Zadajte platnú celočíselnú hodnotu.");
} úlovok (výnimka e) {
System.out.println (e.getMessage ());
}
}
// funkcia, ktorá zhromažďuje dve hodnoty a zobrazuje ich súčet
pridanie súkromného statického prázdna (int hodnota1, int hodnota2) {
int suma;
suma = hodnota1 + hodnota2;
System.out.println ("Súčet dvoch celočíselných hodnôt, ktoré ste zadali:" + súčet);
}
}

Vyššie uvedený kód je bezpečný, pretože vykonáva spracovanie výnimiek. Ak teda zadáte nečíselnú hodnotu, program sa správne ukončí a vytvorí nasledujúci riadok kódu:


Zadajte platnú celočíselnú hodnotu.

Čo je spracovanie výnimiek?

Spracovanie výnimiek je v podstate moderná verzia spracovania chýb, pri ktorej oddelíte kód na spracovanie chýb od bežného kódu na spracovanie. V príklade vyššie je všetok normálny kód na spracovanie (alebo kód, ktorý môže potenciálne vyvolať výnimku) v rámci skús blok a všetok kód na spracovanie chýb je v chytiť blokov.

Ak sa bližšie pozriete na vyššie uvedený príklad, zistíte, že existujú dva bloky úlovkov. Prvý z nich trvá InputMismatchException argument; toto je názov výnimky, ktorá sa vyvolá, ak sa zadá nečíselná hodnota. Druhá trvá Výnimka argument, a to je dôležité, pretože jeho účelom je zachytiť každú výnimku v kóde, ktorú vývojár počas testovania nenašiel.

Súvisiace: Výnimky v jazyku Java: Máte s nimi pravdu?

Testovanie vášho kódu

Pred zabalením by ste nikdy nemali podceňovať silu testovania a opätovného testovania kódu. Mnoho vývojárov (a používateľov ich aplikácií) nájde nové chyby po sprístupnení softvéru verejnosti.

Dôkladné otestovanie vášho kódu zabezpečí, že budete vedieť, čo bude vaša aplikácia robiť v rámci každého mysliteľného scenára, a to vám umožní chrániť vašu aplikáciu pred únikmi údajov.

Súvisiace: Ako pristáť s vašou prvou úlohou pri testovaní softvéru

Zvážte vyššie uvedený príklad. Čo ak po dokončení aplikáciu otestujete iba s celočíselnými hodnotami? Ak to tak nie je, môžete odísť od aplikácie a myslieť si, že ste úspešne identifikovali všetky potenciálne chyby.

Pravda je, že nemusíte byť schopní identifikovať všetky potenciálne chyby; to je dôvod, prečo spracovanie chýb funguje ruka v ruke s testovaním vášho kódu. Testovanie vyššie uvedeného programu ukazuje, že v konkrétnom scenári sa vyskytne jedna potenciálna chyba.

Ak však existuje nejaká iná chyba, ktorá sa počas testovania neobjavila, zvládne ju druhý blok zachytenia v kóde vyššie.

Zabezpečenie vašej databázy

Ak sa vaša aplikácia pripája k databáze, najlepším spôsobom, ako zabrániť prístupu k tejto databáze, je zabezpečiť, aby boli zabezpečené všetky aspekty vašej aplikácie. Čo však v prípade, ak je vaša aplikácia navrhnutá s jediným účelom - poskytnúť rozhranie k uvedenej databáze?

To je miesto, kde sa veci stávajú trochu zaujímavejšími. Databáza vo svojej najzákladnejšej podobe umožňuje používateľovi pridávať, načítať, aktualizovať a mazať údaje. Systém správy databázy je aplikácia, ktorá umožňuje používateľovi priamo komunikovať s databázou.

Väčšina databáz obsahuje citlivé údaje, preto na udržanie integrity a obmedzenie prístupu k týmto údajom existuje jedna kontrola prístupu.

Riadenie prístupu

Kontrola prístupu sa snaží udržať integritu databázy definovaním typu ľudí, ktorí majú prístup do databázy, a obmedzením typu prístupu, ktorý majú. Kvalitný systém na správu databáz by preto mal byť schopný zaznamenať, kto, v akom čase a čo robil, do databázy.

Tiež by malo byť možné zabrániť registrovanému používateľovi v prístupe k údajom, s ktorými nemá oprávnenie komunikovať, alebo ich editovať.

Softvérová bezpečnosť je kľúčovou zručnosťou pre všetkých vývojárov

Vývoj dobrého softvéru je synonymom zabezpečenia toho, aby váš softvér vydržal akýkoľvek škodlivý útok. To je možné dosiahnuť iba napísaním zabezpečeného kódu, neustálym testovaním aplikácie a udržiavaním kontroly nad tým, kto má prístup k vašim údajom.

Teraz, keď viete, ako zabezpečiť softvér, sa možno budete chcieť dozvedieť viac o niektorých krokoch vývoja softvéru.

Email
6 krokov pri vývoji softvéru, ktoré by mali poznať všetci programátori

Pripravujete sa na kódovanie svojho prvého programu? Postupujte podľa týchto kľúčových krokov pri vývoji softvéru.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • Kyber ochrana
  • Tipy na kódovanie
O autorovi
Kadeisha Kean (15 publikovaných článkov)

Kadeisha Kean je softwarová vývojárka a autorka technických / technologických noviniek. Má výraznú schopnosť zjednodušovať niektoré z najkomplexnejších technologických konceptov; výroba materiálu, ktorý ľahko pochopí každý technologický nováčik. Venuje sa písaniu, vývoju zaujímavého softvéru a cestovaniu po svete (prostredníctvom dokumentov).

Viac od Kadeisha Keana

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.