Programmeerija või arendajana ei saa turvaliste rakenduste loomise tähtsust üle tähtsustada.

Tarkvaraturvalisus tegeleb pahatahtlike rünnakute haldamisega, tuvastades tarkvara potentsiaalsed nõrkused ja rakendades nende eest kaitsmiseks vajalikke ettevaatusabinõusid.

Tarkvara ei saa kunagi olla sajaprotsendiliselt turvaline, sest arendaja võib veast mööda vaadata, luua uusi vigu olemasolevate juhtumite parandamiseks või luua värskenduste kaudu uusi haavatavusi.

Siiski on olemas kaks peamist tava, mida kõik tarkvaraarendajad saavad kasutada, et tagada esmalt turvalise tarkvarakirjutamise turvalise koodi loomine ja teie koodi tõhus testimine.

Kuidas kirjutada turvakoodi

Turvalise koodi kirjutamine taandub vaid ühele vea käsitsemisele. Kui suudate ette näha kõiki võimalikke väärtusi, mida kasutaja võib teie rakendust edastada, ja saate teie programmis sellele väärtusele vastuse luua, siis kirjutate turvalise koodi.

See on palju lihtsam kui võite arvata, sest kõik head arendajad teavad oma arendatavate rakenduste kohta peaaegu kõike. Seetõttu peaksite teadma kõiki väärtusi, mida teie rakendus nõuab ülesande täitmiseks (kinnitatud väärtused), ja mõistma, et kõik muud olemasolevad väärtused on heakskiitmata väärtused.

instagram viewer

Turvalise koodi kirjutamine

Oletame, et soovite luua programmi, mis võtab kasutajalt vastu ainult kaks täisarvu ja teostab neile lisatoimingu. Selle ühe lausega, nagu ka hea arendaja, teate nüüd oma rakendusest kõike. Te teate kõiki väärtusi, mida see programm aktsepteerib (täisarvu väärtused), ja teate ülesannet, mille see programm täidab (täiendav toiming).

Programmi loomine Java näites


import java.util. Skanner;
avalik klass Main {
// Põhifunktsioon, mis käivitab programmi ja kogub need kaks väärtust
public staatiline void main (String [] args) {
System.out.println ("Palun sisestage kaks täisarvu väärtust:");
int väärtus1;
int väärtus2;
Skanneri sisend = uus skanner (System.in);
väärtus1 = input.nextInt ();
väärtus2 = input.nextInt ();
liitmine (väärtus1, väärtus2);
sisend.sule ();
}
// funktsioon, mis kogub kaks väärtust ja kuvab nende summa
privaatne staatiline tühine liitmine (int väärtus1, int väärtus2) {
int summa;
summa = väärtus1 + väärtus2;
System.out.println ("Sisestatud kahe täisarvu summa:" + summa);
}
}

Ülaltoodud kood loob rakenduse, mis vastab täpselt nõuetele. Käivitamisel tekitab see konsoolis järgmise rea:


Sisestage kaks täisarvu väärtust:

Seejärel jääb rakendus peatatuks, kuni kasutaja sisestab konsooli kaks täisarvu (see tähendab esimese väärtuse tippimist, sisestusklahvi vajutamist ja kordamist).

Kui kasutaja sisestab väärtused 5 ja 4 konsoolis toodab programm järgmise väljundi:


Sisestatud kahe täisarvu summa: 9

See on hea; programm teeb täpselt seda, mida peaks tegema. Kui ilmub mõni alatu kasutaja ja sisestab teie rakendusse täisarvulise väärtuse, näiteks „g”, on probleeme. Seda seetõttu, et ükski rakenduse kood ei kaitse kinnitamata väärtuste eest.

Sel hetkel kukub teie rakendus kokku, luues teie häkkerile potentsiaalse värava, mis teab täpselt, mida edasi teha.

Teie programmi näite kindlustamine


import java.util. InputMismatchException;
import java.util. Skanner;
avalik klass Main {
// Põhifunktsioon, mis käivitab programmi ja kogub need kaks väärtust
public staatiline void main (String [] args) {
proovige {
System.out.println ("Palun sisestage kaks täisarvu väärtust:");
int väärtus1;
int väärtus2;
// kasutaja iga sisendi lugemiseks skannerklassi kasutamine,
// ja määrake see vastavaks muutujaks (viskab erandi, kui väärtused pole täisarvud)
Skanneri sisend = uus skanner (System.in);
väärtus1 = input.nextInt ();
väärtus2 = input.nextInt ();
// kutsub liitmisfunktsiooni ja edastab sellele kaks väärtust
liitmine (väärtus1, väärtus2);
// sulgeb sisendvoo pärast selle kasutamise lõppu
sisend.sule ();
// käsitseda kõiki prooviplokis visatud vigu
} saak (InputMismatchException e) {
System.out.println ("Palun sisestage kehtiv täisarv.");
} saak (erand e) {
System.out.println (e.getMessage ());
}
}
// funktsioon, mis kogub kaks väärtust ja kuvab nende summa
privaatne staatiline tühine liitmine (int väärtus1, int väärtus2) {
int summa;
summa = väärtus1 + väärtus2;
System.out.println ("Sisestatud kahe täisarvu summa:" + summa);
}
}

Ülaltoodud kood on turvaline, kuna see teostab erandite töötlemist. Seega, kui sisestate väärtuse, mis pole täisarv, lõpetatakse programm järgmise koodirea loomisel õigesti:


Sisestage kehtiv täisarv.

Mis on erandite käsitlemine?

Põhimõtteliselt on erandite käsitlemine veakäsitluse kaasaegne versioon, kus eraldate veakäsitluskoodi tavapärasest töötlemiskoodist. Ülaltoodud näites on kogu tavaline töötlemiskood (või kood, mis võib erandi tekitada) a piires proovige plokk ja kogu veakäsitluskood on sees saak plokid.

Kui vaatate ülaltoodud näidet lähemalt, leiate, et seal on kaks püüdmisplokki. Esimene neist võtab InputMismatchException argument; see on erandi nimi, mis visatakse juhul, kui sisestatakse täisarvuta väärtus. Teine võtab Erand argument ja see on oluline, kuna selle eesmärk on tabada koodis kõik erandid, mida arendaja testimise ajal ei leidnud.

Seotud: Java erandid: kas te käitute nendega õigesti?

Koodi testimine

Te ei tohiks kunagi alahinnata koodi testimise ja uuesti testimise võimet enne pakendamist. Paljud arendajad (ja nende rakenduste kasutajad) leiavad uusi vigu pärast tarkvara avalikkusele kättesaadavaks tegemist.

Koodi põhjalik testimine tagab, et teate, mida teie rakendus iga mõeldava stsenaariumi korral teeb, ja see võimaldab teil oma rakendust andmerikkumiste eest kaitsta.

Seotud: Kuidas maandada oma esimene tarkvara testimistöö

Vaatleme ülaltoodud näidet. Mis siis, kui pärast lõpetamist testite rakendust ainult täisarvu väärtustega? Võib juhtuda, et eemaldute rakendusest ja arvate, et tuvastasite kõik võimalikud vead, kui see pole nii.

Fakt on see, et te ei pruugi kõiki võimalikke vigu tuvastada; sellepärast töötab tõrkeotsing käsikäes koodi testimisega. Eespool toodud programmi testimine näitab, et konkreetse stsenaariumi korral tekib üks potentsiaalne viga.

Kui eksisteerib mõni muu viga, mida testimise ajal ei ilmnenud, lahendab selle ülaltoodud koodi teine ​​püüdeplokk.

Andmebaasi turvalisus

Kui teie rakendus loob ühenduse andmebaasiga, on parim viis sellele andmebaasile juurdepääsu takistamiseks tagada, et teie rakenduse kõik aspektid on turvalised. Kui aga teie rakendus on loodud ainult selle andmebaasi jaoks liidese loomise eesmärgil?

Siin saavad asjad veidi huvitavamaks. Kõige põhilisemal kujul võimaldab andmebaas kasutajal andmeid lisada, hankida, värskendada ja kustutada. Andmebaasi haldussüsteem on rakendus, mis võimaldab kasutajal andmebaasiga otse suhelda.

Enamik andmebaase sisaldab tundlikke andmeid, seetõttu on nende andmete terviklikkuse säilitamiseks ja neile juurdepääsu piiramiseks üks juurdepääsunõue.

Juurdepääsukontroll

Juurdepääsukontrolli eesmärk on säilitada andmebaasi terviklikkus, määratledes inimeste tüübid, kellel on juurdepääs andmebaasile, ja piirates nende juurdepääsu tüüpi. Seetõttu peaks hea andmebaasihaldussüsteem suutma logida, kes andmebaasile juurde pääseb, mis ajal ja mida nad tegid.

Samuti peaks see olema võimeline takistama registreeritud kasutaja juurdepääsu andmetele või nende redigeerimisele, millega tal pole luba suhelda.

Tarkvaraturvalisus on kõigi arendajate jaoks oluline oskus

Hea tarkvara väljatöötamine on sünonüüm selle tagamisele, et teie tarkvara peab vastu igale pahatahtlikule rünnakule. See on saavutatav ainult turvalise koodi kirjutamise, rakenduse pideva testimise ja teie andmetele juurdepääsu omamise üle kontrolli säilitamise kaudu.

Nüüd, kui teate, kuidas oma tarkvara turvata, võiksite õppida mõne tarkvaraarenduse etapi kohta.

E-post
6 tarkvaraarenduse sammu, mida kõik programmeerijad peaksid teadma

Kas valmistute oma esimese programmi kodeerimiseks? Järgige kindlasti neid tarkvara arendamise peamisi samme.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Küberturvalisus
  • Kodeerimisnõuanded
Autori kohta
Kadeisha Kean (15 artiklit on avaldatud)

Kadeisha Kean on täismahus tarkvaraarendaja ja tehnikakirjutaja. Tal on selge võime lihtsustada mõnda kõige keerukamat tehnoloogilist kontseptsiooni; materjali tootmine, mis on hõlpsasti mõistetav igale tehnoloogia algajale. Ta on kirglik kirjutamise, huvitava tarkvara väljatöötamise ja maailmas ringi liikumise üle (dokumentaalfilmide kaudu).

Veel Kadeisha Keanilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress e-kirjas, mille teile just saatsime.

.