Kaip programuotojas ar kūrėjas, negalima pervertinti saugių programų kūrimo svarbos.
Programinės įrangos saugumas susijęs su kenkėjiškų atakų valdymu, nustatant galimas programinės įrangos spragas ir imantis būtinų atsargumo priemonių nuo jų apsisaugoti.
Programinė įranga niekada negali būti 100% saugi, nes kūrėjas gali nepastebėti klaidos, sukurti naujų klaidų, bandydamas ištaisyti esamus atvejus, arba sukurti naujų pažeidžiamumų atnaujindamas.
Tačiau yra dvi pagrindinės praktikos, kurias visi programinės įrangos kūrėjai gali naudoti siekdami užtikrinti, kad pirmiausia jie sukurtų saugų programinės įrangos kūrimo saugų kodą ir efektyviai testuotų jūsų kodą.
Kaip parašyti saugų kodą
Rašant saugų kodą, reikia tvarkyti vieną dalyką. Jei galite numatyti kiekvieną potencialią vertę, kurią vartotojas gali pateikti jūsų programai, ir sukurti jūsų programoje atsakymą pagal šią vertę, tada rašote saugų kodą.
Tai yra daug paprasčiau, nei jūs manote, nes visi geri kūrėjai žino beveik viską apie savo kuriamas programas. Todėl turėtumėte žinoti kiekvieną vertę, kurios jūsų programa reikalauja užduočiai atlikti (patvirtintas reikšmes) ir suprasti, kad visos kitos egzistuojančios vertės yra nepatvirtintos.
Saugaus kodo rašymas
Tarkime, kad norite sukurti programą, kuri iš vartotojo priima tik dvi sveiko skaičiaus reikšmes ir atlieka joms papildymo operaciją. Šiuo vieninteliu sakiniu, kaip ir geras kūrėjas, jūs dabar viską žinote apie savo programą. Jūs žinote visas reikšmes, kurias priims ši programa (sveikųjų skaičių reikšmės), ir žinote užduotį, kurią atliks ši programa (papildymo operacija).
Programos kūrimas „Java“ pavyzdyje
importuoti java.util. Skaitytuvas;
visuomenės klasė Pagrindinis {
// Pagrindinė funkcija, vykdanti programą ir surenkanti dvi reikšmes
public static void main (String [] argumentuoja) {
System.out.println ("Prašome įvesti dvi sveiko skaičiaus reikšmes:");
int reikšmė1;
int vertė2;
Skaitytuvo įvestis = naujas skaitytuvas (System.in);
reikšmė1 = input.nextInt ();
reikšmė2 = input.nextInt ();
pridėjimas (vertė1, vertė2);
įvestis.uždaryti ();
}
// funkcija, kuri renka dvi reikšmes ir parodo jų sumą
privatus statinis niekinis pridėjimas (int vertė1, int reikšmė2) {
int suma;
suma = reikšmė1 + vertė2;
System.out.println ("Dviejų įvestų sveikųjų skaičių reikšmių suma:" + suma);
}
}
Aukščiau pateiktas kodas sukuria programą, kuri tiksliai atitinka reikalavimus. Vykdant, konsolėje bus sukurta ši eilutė:
Įveskite dvi sveiko skaičiaus vertes:
Tada programa liks pristabdyta, kol vartotojas konsolėje įves dvi sveiko skaičiaus reikšmes (tai reiškia, kad reikia įvesti pirmąją reikšmę, paspausti įvedimo klavišą ir pakartoti).
Jei vartotojas įveda reikšmes 5 ir 4 konsolėje programa sukurs tokį išvestį:
Dviejų įvestų sveikųjų skaičių reikšmių suma: 9
Tai puiku; programa daro tiksliai tai, ką turėtų daryti. Tačiau jei ateis piktadarys vartotojas ir į jūsų programą įves ne sveikojo skaičiaus vertę, pvz., „G“, kils problemų. Taip yra todėl, kad joks programos kodas neapsaugo nuo nepatvirtintų reikšmių.
Šiuo metu jūsų programa suges, sukurdama potencialius įsilaužėlių vartus į savo programą, kuri tiksliai žino, ką daryti toliau.
Programos pavyzdžio užtikrinimas
importuoti java.util. „InputMismatchException“;
importuoti java.util. Skaitytuvas;
visuomenės klasė Pagrindinis {
// Pagrindinė funkcija, vykdanti programą ir surenkanti dvi reikšmes
public static void main (String [] argumentuoja) {
bandyti {
System.out.println ("Prašome įvesti dvi sveiko skaičiaus reikšmes:");
int reikšmė1;
int vertė2;
// skaitytuvo klasės naudojimas skaityti kiekvieną vartotojo įvestį,
// ir priskirti jį atitinkamam kintamajam (išmeta išimtį, jei reikšmės nėra sveiki skaičiai)
Skaitytuvo įvestis = naujas skaitytuvas (System.in);
reikšmė1 = input.nextInt ();
reikšmė2 = input.nextInt ();
// iškviečia papildymo funkciją ir perduoda jai dvi reikšmes
pridėjimas (vertė1, vertė2);
// uždaro įvesties srautą pasibaigus jo naudojimui
įvestis.uždaryti ();
// tvarkyti visas klaidas, mestas bandymo bloke
} pagauti („InputMismatchException e“) {
System.out.println ("Įveskite teisingą sveikojo skaičiaus vertę.");
} laimikis (e išimtis) {
System.out.println (e.getMessage ());
}
}
// funkcija, kuri renka dvi reikšmes ir parodo jų sumą
privatus statinis niekinis pridėjimas (int vertė1, int reikšmė2) {
int suma;
suma = reikšmė1 + vertė2;
System.out.println ("Dviejų įvestų sveikųjų skaičių reikšmių suma:" + suma);
}
}
Aukščiau pateiktas kodas yra saugus, nes jis tvarko išimtis. Todėl, jei įvesite ne sveikojo skaičiaus reikšmę, programa bus tinkamai nutraukta, o bus sukurta ši kodo eilutė:
Įveskite teisingą sveiko skaičiaus vertę.
Kas yra išimčių tvarkymas?
Iš esmės išimčių tvarkymas yra šiuolaikinė klaidų tvarkymo versija, kai jūs atskiriate klaidų tvarkymo kodą nuo įprasto apdorojimo kodo. Aukščiau pateiktame pavyzdyje visas įprastas apdorojimo kodas (arba kodas, kuris gali sukelti išimtį) yra a bandyti blokas, o visas klaidų tvarkymo kodas yra pagauti blokai.
Jei atidžiau pažvelgsite į anksčiau pateiktą pavyzdį, pamatysite, kad yra du blokavimo blokai. Pirmasis ima „InputMismatchException“ argumentas; tai yra išimties, kuri išmetama, jei įvedama ne sveikojo skaičiaus, pavadinimas. Antrasis ima Išimtis argumentas, ir tai yra svarbu, nes jo tikslas yra sugauti bet kokias išimtis kode, kurių kūrėjas nerado bandymo metu.
Susijęs: „Java“ išimtys: ar jūs elgiatės teisingai?
Jūsų kodo testavimas
Niekada neturėtumėte nuvertinti kodo bandymo ir pakartotinio patikrinimo prieš pakuojant galią. Daugelis kūrėjų (ir jų programų vartotojų) randa naujų klaidų, kai programinė įranga yra prieinama visuomenei.
Kruopščiai išbandę kodą įsitikinsite, kad žinosite, ką jūsų programa padarys pagal kiekvieną įmanomą scenarijų, ir tai padės apsaugoti programą nuo duomenų pažeidimų.
Susijęs: Kaip nusiųsti savo pirmąjį programinės įrangos testavimo darbą
Apsvarstykite aukščiau pateiktą pavyzdį. Ką daryti, jei baigę bandysite programą tik su sveikojo skaičiaus vertėmis? Galite atsitraukti nuo programos, manydami, kad sėkmingai nustatėte visas galimas klaidas, kai taip nėra.
Faktas yra tas, kad jums gali nepavykti nustatyti visų galimų klaidų; todėl klaidų tvarkymas veikia kartu su jūsų kodo testavimu. Išbandžius aukščiau pateiktą programą, paaiškėja, kad pagal konkretų scenarijų įvyks viena potenciali klaida.
Tačiau, jei yra kokia nors kita klaida, kuri nepasirodė bandant, tai pašalins aukščiau esančio kodo antrasis sugavimo blokas.
Apsaugokite savo duomenų bazę
Jei jūsų programa prisijungia prie duomenų bazės, geriausias būdas užkirsti kelią prieigai prie tos duomenų bazės yra užtikrinti, kad visi jūsų programos aspektai yra saugūs. Tačiau ką daryti, jei jūsų programa sukurta vieninteliu tikslu suteikti sąsają su minėta duomenų baze?
Čia viskas tampa šiek tiek įdomiau. Pagrindine forma duomenų bazė leidžia vartotojui pridėti, gauti, atnaujinti ir ištrinti duomenis. Duomenų bazės valdymo sistema yra programa, leidžianti vartotojui tiesiogiai bendrauti su duomenų baze.
Daugumoje duomenų bazių yra neskelbtinų duomenų, todėl norint išsaugoti šių duomenų vientisumą ir apriboti prieigą prie jų, reikia turėti vieną prieigos kontrolę.
Prieigos kontrolė
Prieigos kontrolė siekia išlaikyti duomenų bazės vientisumą, apibrėždama žmonių, kurie gali patekti į duomenų bazę, tipą ir apribodami jų prieigos tipą. Todėl gera duomenų bazių valdymo sistema turėtų sugebėti užregistruoti, kas, kada ir ką padarė prie duomenų bazės.
Ji taip pat turėtų galėti užkirsti kelią registruotam vartotojui pasiekti ar redaguoti duomenis, su kuriais jiems neleidžiama bendrauti.
Programinės įrangos saugumas yra esminis įgūdis visiems kūrėjams
Geros programinės įrangos kūrimas yra sinonimas užtikrinant, kad jūsų programinė įranga atlaikys bet kokią kenkėjišką ataką. Tai galima pasiekti tik parašius saugų kodą, nuolat testuojant programą ir išlaikant kontrolę, kas turi prieigą prie jūsų duomenų.
Dabar, kai žinote, kaip apsaugoti savo programinę įrangą, galbūt norėsite sužinoti apie kai kuriuos programinės įrangos kūrimo veiksmus.
Ruošiatės koduoti savo pirmąją programą? Būtinai atlikite šiuos pagrindinius programinės įrangos kūrimo veiksmus.
Skaitykite toliau
- Programavimas
- Kibernetinė sauga
- Kodavimo patarimai
Kadeisha Kean yra „Full Stack“ programinės įrangos kūrėja ir technikos / technologijų rašytoja. Ji turi aiškų gebėjimą supaprastinti kai kurias sudėtingiausias technologines sąvokas; gamina medžiagą, kurią lengvai supranta bet kuris naujokas technologija. Ji aistringai rašo, kuria įdomią programinę įrangą ir keliauja po pasaulį (per dokumentinius filmus).
Užsiprenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.