Kā programmētājam vai izstrādātājam drošu lietojumprogrammu izveides nozīmi nevar pārspīlēt.

Programmatūras drošība ir saistīta ar ļaunprātīgu uzbrukumu pārvaldību, identificējot iespējamās programmatūras ievainojamības un veicot nepieciešamos piesardzības pasākumus, lai no tiem aizsargātos.

Programmatūra nekad nevar būt 100% droša, jo izstrādātājs var nepamanīt kļūdu, izveidot jaunas kļūdas, mēģinot novērst esošos gadījumus, vai izveidot jaunus ievainojamības punktus, izmantojot atjauninājumus.

Tomēr ir divas galvenās prakses, kuras visi programmatūras izstrādātāji var izmantot, lai vispirms nodrošinātu drošu programmatūras rakstīšanas drošu kodu un efektīvi pārbaudītu jūsu kodu.

Kā rakstīt drošu kodu

Droša koda rakstīšana ir saistīta ar vienu lietu ar kļūdu apstrādi. Ja jūs varat paredzēt katru potenciālu vērtību, ko lietotājs varētu piegādāt jūsu lietojumprogrammai, un jūsu programmā izveidot atbildi uz šo vērtību, jūs rakstāt drošu kodu.

Tas ir daudz vienkāršāk, nekā jūs domājat, jo visi labi izstrādātāji zina gandrīz visu par viņu izstrādātajām lietojumprogrammām. Tāpēc jums jāzina katra vērtība, kas jūsu lietojumprogrammai nepieciešama uzdevuma veikšanai (apstiprinātās vērtības), un jāsaprot, ka visas citas iespējamās esošās vērtības ir neapstiprinātas vērtības.

instagram viewer

Droša koda rakstīšana

Pieņemsim, ka vēlaties izveidot programmu, kas no lietotāja pieņem tikai divas veselas skaitļa vērtības un veic tām pievienošanas darbību. Ar šo vienu teikumu, tāpat kā labs izstrādātājs, jūs tagad zināt visu par savu lietojumprogrammu. Jūs zināt visas vērtības, kuras šī programma pieņems (veselu skaitļu vērtības), un jūs zināt uzdevumu, kuru šī programma veiks (pievienošanas darbība).

Programmas izveide Java piemērā


importēt java.util. Skeneris;
sabiedrības klase Main {
// Galvenā funkcija, kas izpilda programmu un apkopo abas vērtības
public static void main (String [] args) {
System.out.println ("Lūdzu, ievadiet divas veselā skaitļa vērtības:");
int vērtība1;
int vērtība2;
Skenera ievade = jauns skeneris (System.in);
vērtība1 = input.nextInt ();
vērtība2 = input.nextInt ();
saskaitīšana (vērtība1, vērtība2);
ievade.slēgt ();
}
// funkcija, kas apkopo abas vērtības un parāda to summu
privāta statiska tukšuma pievienošana (int vērtība1, int vērtība2) {
int summa;
summa = vērtība1 + vērtība2;
System.out.println ("Divu ievadīto veselu skaitļu vērtību summa:" + summa);
}
}

Iepriekš minētais kods rada lietojumprogrammu, kas precīzi atbilst prasībām. Pēc izpildes konsolē tiks izveidota šāda rinda:


Lūdzu, ievadiet divas veselā skaitļa vērtības:

Pēc tam lietojumprogramma paliks apturēta, līdz lietotājs ievadīs konsolē divas veselas skaitļa vērtības (tas nozīmē, ka jāievada pirmā vērtība, jānospiež ievadīšanas taustiņš un jāatkārto).

Ja lietotājs ievada vērtības 5 un 4 konsolē programma izveidos šādu izvadi:


Divu ievadīto veselu skaitļu vērtību summa: 9

Tas ir lieliski; programma dara tieši to, kas tai būtu jādara. Tomēr, ja nāk ļaundaris lietotājs un jūsu lietojumprogrammā ievada vērtību, kas nav vesels skaitlis, piemēram, “g”, radīsies problēmas. Tas ir tāpēc, ka neviens lietojumprogrammas kods neaizsargā pret neapstiprinātām vērtībām.

Šajā brīdī jūsu lietojumprogramma avarēs, izveidojot potenciālu vārti jūsu hakerim, kas precīzi zina, kā rīkoties tālāk.

Programmas drošības nodrošināšana


importēt java.util. InputMismatchException;
importēt java.util. Skeneris;
sabiedrības klase Main {
// Galvenā funkcija, kas izpilda programmu un apkopo abas vērtības
public static void main (String [] args) {
izmēģināt {
System.out.println ("Lūdzu, ievadiet divas veselā skaitļa vērtības:");
int vērtība1;
int vērtība2;
// izmantojot skenera klasi, lai nolasītu katru lietotāja ievadīto ievadi,
// un piešķir to attiecīgajam mainīgajam (izmet izņēmumu, ja vērtības nav veseli skaitļi)
Skenera ievade = jauns skeneris (System.in);
vērtība1 = input.nextInt ();
vērtība2 = input.nextInt ();
// izsauc pievienošanas funkciju un nodod tai divas vērtības
saskaitīšana (vērtība1, vērtība2);
// aizver ievades straumi pēc tam, kad tā ir beigusies
ievade.slēgt ();
// rīkoties ar visām kļūdām, kas izmestas mēģinājuma blokā
} catch (InputMismatchException e) {
System.out.println ("Lūdzu, ievadiet derīgu vesela skaitļa vērtību.");
} nozveja (izņēmums e) {
System.out.println (e.getMessage ());
}
}
// funkcija, kas apkopo abas vērtības un parāda to summu
privāta statiska tukšuma pievienošana (int vērtība1, int vērtība2) {
int summa;
summa = vērtība1 + vērtība2;
System.out.println ("Divu ievadīto veselu skaitļu vērtību summa:" + summa);
}
}

Iepriekš minētais kods ir drošs, jo tas veic izņēmumu apstrādi. Tāpēc, ja ievadāt vērtību, kas nav vesels skaitlis, programma tiks pareizi pārtraukta, vienlaikus izveidojot šādu koda rindu:


Lūdzu, ievadiet derīgu vesela skaitļa vērtību.

Kas ir izņēmumu apstrāde?

Būtībā izņēmumu apstrāde ir mūsdienīga kļūdu apstrādes versija, kurā kļūdu apstrādes kodu nošķirat no parastā apstrādes koda. Iepriekš minētajā piemērā viss parastais apstrādes kods (vai kods, kas potenciāli var radīt izņēmumu) atrodas a mēģiniet bloks, un viss kļūdu apstrādes kods atrodas noķert bloki.

Ja rūpīgāk aplūkosiet iepriekš minēto piemēru, jūs atradīsit, ka ir divi bloķēšanas bloki. Pirmais ņem InputMismatchException arguments; šis ir izņēmuma nosaukums, kas tiek izmests, ja tiek ievadīta vērtība, kas nav vesels skaitlis. Otrais ņem Izņēmums arguments, un tas ir svarīgi, jo tā mērķis ir noķert visus izņēmumus kodā, ko izstrādātājs neatrada testēšanas laikā.

Saistīts: Java izņēmumi: vai jūs pareizi rīkojaties ar viņiem?

Jūsu koda pārbaude

Nekad nevajadzētu par zemu novērtēt koda testēšanas un atkārtotas pārbaudes iespējas pirms iesaiņošanas. Pēc tam, kad programmatūra ir pieejama sabiedrībai, daudzi izstrādātāji (un viņu lietojumprogrammu lietotāji) atrod jaunas kļūdas.

Rūpīgi pārbaudot kodu, jūs zināt, ko jūsu lietojumprogramma darīs katrā iespējamajā scenārijā, un tas ļaus jums aizsargāt savu lietojumprogrammu no datu pārkāpumiem.

Saistīts: Kā nosūtīt savu pirmo programmatūras testēšanas darbu

Apsveriet iepriekš minēto piemēru. Ko darīt, ja pēc pabeigšanas lietojumprogrammu pārbaudāt tikai ar veselu skaitļu vērtībām? Jūs varētu aiziet no lietojumprogrammas, domājot, ka esat veiksmīgi identificējis visas iespējamās kļūdas, ja tas tā nav.

Fakts ir tāds, ka jūs, iespējams, nevarat identificēt visas iespējamās kļūdas; tāpēc kļūdu apstrāde darbojas vienlaikus ar koda pārbaudi. Iepriekšminētās programmas testēšana parāda, ka konkrētā scenārijā notiks viena iespējama kļūda.

Tomēr, ja pastāv kāda cita kļūda, kas testēšanas laikā netika parādīta, iepriekšējais koda bloķēšanas bloks to apstrādās.

Datu bāzes drošība

Ja jūsu lietojumprogramma izveido savienojumu ar datu bāzi, labākais veids, kā novērst piekļuvi šai datu bāzei, ir nodrošināt, ka visi jūsu lietojumprogrammas aspekti ir droši. Tomēr, ja jūsu lietojumprogramma ir paredzēta tikai un vienīgi ar mērķi nodrošināt saskarni minētajai datu bāzei?

Šeit lietas kļūst mazliet interesantākas. Pamata formā datu bāze ļauj lietotājam pievienot, izgūt, atjaunināt un dzēst datus. Datu bāzes pārvaldības sistēma ir lietojumprogramma, kas ļauj lietotājam tieši mijiedarboties ar datu bāzi.

Lielākā daļa datu bāzu satur sensitīvus datus, tāpēc, lai saglabātu šo datu integritāti un ierobežotu piekļuvi tiem, ir nepieciešama viena piekļuves kontrole.

Piekļuves kontrole

Piekļuves kontrole cenšas saglabāt datu bāzes integritāti, nosakot cilvēku tipu, kuri var piekļūt datu bāzei, un ierobežojot viņu piekļuves veidu. Tāpēc labai datu bāzes pārvaldības sistēmai vajadzētu būt iespējai reģistrēt, kas, kad un kādā laikā piekļūst datu bāzei.

Tam arī vajadzētu būt iespējai liegt reģistrētam lietotājam piekļūt datiem vai rediģēt tos, ar kuriem viņiem nav atļauts mijiedarboties.

Programmatūras drošība ir būtiska prasme visiem izstrādātājiem

Labas programmatūras izstrāde ir sinonīms tam, lai nodrošinātu, ka jūsu programmatūra spēj izturēt jebkuru ļaunprātīgu uzbrukumu. To var panākt, tikai ierakstot drošu kodu, nepārtraukti pārbaudot lietojumprogrammu un saglabājot kontroli pār to, kam ir piekļuve jūsu datiem.

Tagad, kad zināt, kā aizsargāt programmatūru, ieteicams uzzināt par dažiem programmatūras izstrādes soļiem.

E-pasts
6 programmatūras izstrādes soļi, kas jāzina visiem programmētājiem

Gatavojaties kodēt savu pirmo programmu? Noteikti izpildiet šos galvenos programmatūras izstrādes soļus.

Lasiet Tālāk

Saistītās tēmas
  • Programmēšana
  • Kiberdrošība
  • Kodēšanas padomi
Par autoru
Kadeiša Kīna (Publicēti 15 raksti)

Kadeisha Kean ir pilnas programmatūras izstrādātājs un tehnisko / tehnoloģiju rakstnieks. Viņai ir īpaša spēja vienkāršot dažus no vissarežģītākajiem tehnoloģiskajiem jēdzieniem; ražo materiālu, kuru viegli var saprast jebkurš iesācējs tehnoloģija. Viņa aizrauj rakstīšanu, interesantas programmatūras izstrādi un ceļošanu pa pasauli (izmantojot dokumentālās filmas).

Vairāk no Kadeisha Kean

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.