Ohjelmoijana tai kehittäjänä suojattujen sovellusten luomisen merkitystä ei voida yliarvioida.

Ohjelmistoturva käsittelee haitallisten hyökkäysten hallintaa tunnistamalla ohjelmiston mahdolliset haavoittuvuudet ja toteuttamalla tarvittavat varotoimet niiden torjumiseksi.

Ohjelmisto ei voi koskaan olla 100% turvallinen, koska kehittäjä voi unohtaa virheen, luoda uusia vikoja yrittäessään korjata olemassa olevia tapauksia tai luoda uusia haavoittuvuuksia päivitysten avulla.

On kuitenkin kaksi keskeistä käytäntöä, joita kaikki ohjelmistokehittäjät voivat käyttää varmistaakseen, että he luovat ensinnäkin suojatun ohjelmistojen kirjoittamisen suojatun koodin, ja testaavat koodisi tehokkaasti.

Kuinka kirjoittaa suojattu koodi

Suojakoodin kirjoittaminen on yksi asia, virheiden käsittely. Jos pystyt ennakoimaan kaikki potentiaaliset arvot, jotka käyttäjä saattaa syöttää sovelluksellesi, ja luomaan vastauksen ohjelmaasi kyseiselle arvolle, kirjoitat suojattua koodia.

Tämä on paljon yksinkertaisempaa kuin luulisi, koska kaikki hyvät kehittäjät tietävät melkein kaiken kehittämistään sovelluksista. Siksi sinun tulisi tietää kaikki arvot, joita sovelluksesi vaatii tehtävän suorittamiseen (hyväksytyt arvot), ja ymmärtää, että kaikki muut olemassa olevat arvot ovat hyväksymättömiä arvoja.

Suojatun koodin kirjoittaminen

Oletetaan, että haluat luoda ohjelman, joka hyväksyy vain kaksi kokonaislukua käyttäjältä ja suorittaa heille lisätoiminnon. Tällä yhdellä lauseella, kuten hyvä kehittäjä, tiedät nyt kaiken sovelluksestasi. Tiedät kaikki arvot, jotka tämä ohjelma hyväksyy (kokonaisluvut) ja tiedät tehtävän, jonka tämä ohjelma suorittaa (lisäysoperaatio).

Ohjelman luominen Java-esimerkissä


tuo java.util. Skanneri;
julkinen luokka Pää {
// Päätoiminto, joka suorittaa ohjelman ja kerää kaksi arvoa
public staattinen void main (String [] argumentoi) {
System.out.println ("Anna kaksi kokonaislukua:");
int-arvo1;
int-arvo2;
Skannerin syöttö = uusi skanneri (System.in);
arvo1 = input.nextInt ();
arvo2 = input.nextInt ();
summaus (arvo1, arvo2);
input.close ();
}
// funktio, joka kerää nämä kaksi arvoa ja näyttää niiden summan
yksityinen staattinen tyhjä lisäys (int arvo1, int arvo2) {
int summa;
summa = arvo1 + arvo2;
System.out.println ("Kahden antamasi kokonaislukuarvon summa:" + summa);
}
}

Yllä oleva koodi tuottaa sovelluksen, joka vastaa tarkasti vaatimuksia. Suorituksen yhteydessä se tuottaa seuraavan rivin konsoliin:


Anna kaksi kokonaislukuarvoa:

Sitten sovellus pysyy keskeytettynä, kunnes käyttäjä syöttää konsoliin kaksi kokonaislukuarvoa (tämä tarkoittaa ensimmäisen arvon kirjoittamista, Enter-näppäimen painamista ja toistamista).

Jos käyttäjä syöttää arvot 5 ja 4 konsolissa ohjelma tuottaa seuraavan tuloksen:


Kahden antamasi kokonaislukuarvon summa: 9

Tämä on suurenmoista; Ohjelma tekee juuri sen, mitä sen pitäisi tehdä. Jos epärehellinen käyttäjä tulee mukaan ja kirjoittaa ei-kokonaisluvun, kuten g, sovellukseesi, on kuitenkin ongelmia. Tämä johtuu siitä, että mikään sovelluksen koodi ei suojaa hyväksymättömiä arvoja vastaan.

Tässä vaiheessa sovelluksesi kaatuu ja luo hakkerille potentiaalisen yhdyskäytävän sovellukseesi, joka tietää tarkalleen, mitä tehdä seuraavaksi.

Ohjelman turvaaminen - esimerkki


tuo java.util. InputMismatchException;
tuo java.util. Skanneri;
julkinen luokka Pää {
// Päätoiminto, joka suorittaa ohjelman ja kerää kaksi arvoa
public staattinen void main (String [] argumentoi) {
yrittää {
System.out.println ("Anna kaksi kokonaislukua:");
int-arvo1;
int-arvo2;
// skanneriluokan avulla voit lukea käyttäjän kaikki syötteet,
// ja määritä se vastaavaan muuttujaan (heittää poikkeuksen, jos arvot eivät ole kokonaislukuja)
Skannerin syöttö = uusi skanneri (System.in);
arvo1 = input.nextInt ();
arvo2 = input.nextInt ();
// kutsuu lisäystoiminnon ja välittää sille kaksi arvoa
summaus (arvo1, arvo2);
// sulkee syötevirran käytön loputtua
input.close ();
// käsittele kaikki kokeilulohkossa heitetyt virheet
} catch (InputMismatchException e) {
System.out.println ("Anna kelvollinen kokonaislukuarvo.");
} saalis (poikkeus e) {
System.out.println (e.getMessage ());
}
}
// funktio, joka kerää nämä kaksi arvoa ja näyttää niiden summan
yksityinen staattinen tyhjä lisäys (int arvo1, int arvo2) {
int summa;
summa = arvo1 + arvo2;
System.out.println ("Kahden antamasi kokonaislukuarvon summa:" + summa);
}
}

Yllä oleva koodi on suojattu, koska se suorittaa poikkeusten käsittelyä. Siksi, jos syötät arvon, joka ei ole kokonaisluku, ohjelma päättyy oikein ja tuottaa seuraavan koodirivin:


Anna kelvollinen kokonaislukuarvo.

Mikä on poikkeusten käsittely?

Pohjimmiltaan poikkeuskäsittely on virheenkäsittelyn nykyaikainen versio, jossa erotat virhekäsittelykoodin normaalista käsittelykoodista. Yllä olevassa esimerkissä kaikki normaalit käsittelykoodit (tai koodit, jotka voivat mahdollisesti aiheuttaa poikkeuksen) ovat a-alueella yrittää esto, ja kaikki virhekäsittelykoodit ovat sisällä saada kiinni lohkot.

Jos tarkastelet tarkemmin yllä olevaa esimerkkiä, huomaat, että on olemassa kaksi salpalohkoa. Ensimmäinen ottaa InputMismatchException Perustelu; tämä on heitetyn poikkeuksen nimi, jos syötetään ei-kokonaislukuarvo. Toinen ottaa Poikkeus argumentti, ja tämä on tärkeää, koska sen tarkoituksena on saada kaikki poikkeukset koodiin, joita kehittäjä ei löytänyt testauksen aikana.

Liittyvät: Java-poikkeukset: käsitteletkö heitä oikein?

Koodisi testaaminen

Älä koskaan aliarvioi koodin testaamisen ja testaamisen voimaa ennen pakkaamista. Monet kehittäjät (ja heidän sovellustensa käyttäjät) löytävät uusia vikoja, kun ohjelmisto on yleisön saatavilla.

Koodisi perusteellinen testaaminen varmistaa, että tiedät, mitä sovelluksesi tekee kaikissa mahdollisissa tilanteissa, ja sen avulla voit suojata sovelluksesi tietorikkomuksilta.

Liittyvät: Kuinka hankkia ensimmäinen ohjelmistojen testaustyö

Harkitse yllä olevaa esimerkkiä. Entä jos testat sovelluksen valmistumisen jälkeen vain kokonaislukuarvoilla? Saatat mennä pois sovelluksesta ja ajatella, että tunnistat kaikki mahdolliset virheet, kun näin ei ole.

Tosiasia on, että et välttämättä pysty tunnistamaan kaikkia mahdollisia virheitä. tämän vuoksi virheiden käsittely toimii yhdessä koodin testaamisen kanssa. Yllä olevan ohjelman testaus osoittaa, että yksi mahdollinen virhe tapahtuu tietyssä skenaariossa.

Jos kuitenkin esiintyy jokin muu virhe, jota ei ilmennyt testauksen aikana, yllä olevan koodin toinen salpalohko käsittelee sen.

Tietokannan suojaaminen

Jos sovelluksesi muodostaa yhteyden tietokantaan, paras tapa estää pääsy kyseiseen tietokantaan on varmistaa, että kaikki sovelluksesi ominaisuudet ovat turvallisia. Entä jos sovelluksesi on suunniteltu yksinomaan tarjoamaan käyttöliittymä mainittuun tietokantaan?

Täällä asiat muuttuvat hieman mielenkiintoisemmiksi. Perusmuodossaan tietokanta antaa käyttäjän lisätä, hakea, päivittää ja poistaa tietoja. Tietokannan hallintajärjestelmä on sovellus, jonka avulla käyttäjä voi olla vuorovaikutuksessa suoraan tietokannan kanssa.

Suurin osa tietokannoista sisältää arkaluontoisia tietoja, minkä vuoksi näiden tietojen eheyden ylläpitämiseksi ja pääsyn rajoittamiseksi on yksi vaatimuksen pääsynhallinta.

Kulunvalvonta

Pääsynvalvonnalla pyritään ylläpitämään tietokannan eheyttä määrittelemällä ihmisten tyypit, joilla on pääsy tietokantaan, ja rajoittamalla heidän käytettävissä olevaa tyyppiä. Siksi hyvän tietokannan hallintajärjestelmän pitäisi pystyä kirjautumaan sisään, kuka käyttää tietokantaa, milloin ja mitä teki.

Sen olisi myös voitava estää rekisteröityä käyttäjää pääsemästä tai muokkaamasta tietoja, joiden kanssa hänellä ei ole lupaa olla vuorovaikutuksessa.

Ohjelmistoturva on ratkaiseva taito kaikille kehittäjille

Hyvän ohjelmiston kehittäminen on synonyymiä sen varmistamiselle, että ohjelmisto kestää kaiken haitallisen hyökkäyksen. Tämä on mahdollista vain kirjoittamalla suojattu koodi, testaamalla sovellusta jatkuvasti ja ylläpitämällä hallintaa sille, kenellä on pääsy tietoihisi.

Nyt kun tiedät kuinka suojata ohjelmistosi, saatat haluta oppia joistakin ohjelmistokehityksen vaiheista.

Sähköposti
6 ohjelmistokehitysvaihetta, jotka kaikkien ohjelmoijien tulisi tietää

Valmisteletko ensimmäisen ohjelmasi koodaamista? Noudata näitä ohjelmistokehityksen tärkeitä vaiheita.

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • Kyberturvallisuus
  • Koodausvinkit
Kirjailijasta
Kadeisha Kean (15 artikkelia julkaistu)

Kadeisha Kean on Full-Stack-ohjelmistokehittäjä ja tekninen / teknologinen kirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimpia teknisiä käsitteitä; tuottaa materiaalia, joka on helposti ymmärrettävissä kaikille tekniikan aloittelijoille. Hän on intohimoisesti kirjoittaminen, mielenkiintoisten ohjelmistojen kehittäminen ja matkustaminen ympäri maailmaa (dokumenttielokuvien kautta).

Lisää artistilta Kadeisha Kean

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.

.