Као програмер или програмер, важност креирања сигурних апликација не може се преценити.

Софтверска безбедност се бави управљањем злонамерним нападима идентификовањем потенцијалних рањивости у софтверу и предузимањем неопходних мера предострожности да се заштите од њих.

Софтвер никада не може бити 100% сигуран, јер програмер може превидети грешку, створити нове грешке у покушају да поправи постојеће случајеве или створити нове рањивости путем ажурирања.

Међутим, постоје две кључне праксе које сви програмери софтвера могу применити како би се осигурало да на првом месту креирају сигуран сигурносни код за писање софтвера и ефикасно тестирају ваш код.

Како написати сигуран код

Писање сигурног кода своди се на једно руковање грешкама. Ако можете предвидјети сваку потенцијалну вриједност коју би корисник могао хранити вашом апликацијом и створити одговор у вашем програму за ту вриједност, онда пишете сигуран код.

Ово је много једноставније него што мислите, јер сви добри програмери знају готово све о апликацијама које развијају. Стога бисте требали знати сваку вриједност коју ваша апликација захтијева за извршавање задатка (одобрене вриједности) и разумјети да је свака друга могућа вриједност неодобрена вриједност.

instagram viewer

Писање сигурног кода

Рецимо да желите да направите програм који од корисника прихвата само две целобројне вредности и врши операцију сабирања над њима. Са том једном реченицом, попут доброг програмера, сада знате све о својој апликацији. Знате све вредности које ће овај програм прихватити (целобројне вредности) и знате задатак који ће овај програм извршити (операција сабирања).

Стварање програма на Јави Пример


импорт јава.утил. Скенер;
јавна класа Маин {
// Главна функција која извршава програм и прикупља две вредности
јавна статичка воид главна (Стринг [] аргс) {
Систем.оут.принтлн ("Унесите своје две целобројне вредности:");
инт валуе1;
инт валуе2;
Улаз за скенер = нови скенер (Систем.ин);
валуе1 = инпут.нектИнт ();
валуе2 = инпут.нектИнт ();
сабирање (вредност1, вредност2);
инпут.цлосе ();
}
// функција која прикупља две вредности и приказује њихов збир
приватно статичко додавање празнине (инт валуе1, инт валуе2) {
инт сум;
сума = вредност1 + вредност2;
Систем.оут.принтлн ("Збир две целобројне вредности које сте унели:" + збир);
}
}

Горњи код даје апликацију која тачно одговара захтевима. По извршењу, произвешће следећи ред у конзоли:


Унесите своје две целобројне вредности:

Тада ће апликација остати паузирана све док корисник не унесе две целобројне вредности у конзолу (то значи да откуца прву вредност, притисне тастер ентер и понови).

Ако корисник унесе вредности 5 и 4 у конзоли ће програм произвести следеће резултате:


Збир две целобројне вредности које сте унели: 9

Ово је супер; програм ради тачно оно што треба. Међутим, ако наиђе неваљали корисник и у вашу апликацију унесе вредност која није целобројна, на пример „г“, настаће проблеми. То је зато што ниједан код у апликацији не штити од неодобрених вредности.

У овом тренутку ваша апликација ће се срушити, стварајући потенцијални пролаз у вашу апликацију за хакера који тачно зна шта даље треба да ради.

Осигурање вашег програма


импорт јава.утил. ИнпутМисматцхЕкцептион;
импорт јава.утил. Скенер;
јавна класа Маин {
// Главна функција која извршава програм и прикупља две вредности
јавна статичка воид главна (Стринг [] аргс) {
покушати {
Систем.оут.принтлн ("Унесите своје две целобројне вредности:");
инт валуе1;
инт валуе2;
// коришћење класе скенера за читање сваког уноса од корисника,
// и доделимо је одговарајућој променљивој (баца изузетак ако вредности нису цели бројеви)
Улаз за скенер = нови скенер (Систем.ин);
валуе1 = инпут.нектИнт ();
валуе2 = инпут.нектИнт ();
// позива функцију сабирања и прослеђује јој две вредности
сабирање (вредност1, вредност2);
// затвара улазни ток након што заврши са употребом
инпут.цлосе ();
// обрађујемо све грешке избачене у блоку три
} цатцх (ИнпутМисматцхЕкцептион е) {
Систем.оут.принтлн ("Унесите важећу целобројну вредност.");
} цатцх (Изузетак е) {
Систем.оут.принтлн (е.гетМессаге ());
}
}
// функција која прикупља две вредности и приказује њихов збир
приватно статичко додавање празнине (инт валуе1, инт валуе2) {
инт сум;
сума = вредност1 + вредност2;
Систем.оут.принтлн ("Збир две целобројне вредности које сте унели:" + збир);
}
}

Горњи код је сигуран јер врши руковање изузецима. Стога, ако унесете нецелу вредност, програм ће се правилно завршити док производи следећи ред кода:


Унесите важећу целобројну вредност.

Шта је руковање изузецима?

У основи, руковање изузецима је савремена верзија руковања грешкама, где одвајате код за руковање грешкама од уобичајеног кода за обраду. У горњем примеру, сав уобичајени код за обраду (или код који потенцијално може да изузме изузетак) налази се у оквиру покушати блок, а сав код за руковање грешкама је унутар улов блокови.

Ако пажљивије погледате горњи пример, открићете да постоје два блока улова. Први узима ИнпутМисматцхЕкцептион расправа; ово је име изузетка који се избацује ако се унесе нецела вредност. Други узима Изузетак аргумент, а ово је важно јер је његова сврха да ухвати било који изузетак унутар кода који програмер није пронашао током тестирања.

Повезан: Јава изузеци: Да ли се правилно носите са њима?

Тестирање вашег кода

Никада не бисте требали потцењивати моћ тестирања и поновног тестирања кода пре паковања. Многи програмери (и корисници њихових апликација) проналазе нове грешке након што је софтвер доступан јавности.

Темељито тестирање вашег кода осигураће вам да знате шта ће ваша апликација радити у свим замисливим сценаријима, а то вам омогућава да заштитите своју апликацију од повреда података.

Повезан: Како да нађете свој први посао за тестирање софтвера

Размотрите горњи пример. Шта ако након завршетка тестирате апликацију само са целобројним вредностима? Можда се удаљите од апликације мислећи да сте успешно идентификовали све потенцијалне грешке када то није случај.

Чињеница је да можда нећете моћи да идентификујете све потенцијалне грешке; то је разлог зашто руковање грешкама функционише упоредо са тестирањем вашег кода. Тестирање горњег програма показује да ће се у одређеном сценарију појавити једна потенцијална грешка.

Међутим, ако постоји нека друга грешка која се није појавила током тестирања, други блок цатцх у коду изнад ће је решити.

Осигурање ваше базе података

Ако се ваша апликација повеже са базом података, најбољи начин за спречавање приступа тој бази података је осигурати да су сви аспекти ваше апликације безбедни. Међутим, шта ако је ваша апликација дизајнирана са једином сврхом да обезбеди интерфејс за поменуту базу података?

Овде ствари постају мало занимљивије. У свом најосновнијем облику база података омогућава кориснику додавање, преузимање, ажурирање и брисање података. Систем за управљање базом података је апликација која омогућава кориснику директну интеракцију са базом података.

Већина база података садржи осетљиве податке, стога је за одржавање интегритета и ограничење приступа тим подацима потребна контрола приступа.

Контрола приступа

Контрола приступа настоји да одржи интегритет базе података дефинишући тип људи који могу приступити бази података и ограничавајући тип приступа који имају. Због тога би добар систем за управљање базама података требало да буде у стању да евидентира ко приступа бази података, у које време и шта је радио.

Такође би требало да буде у стању да спречи регистрованог корисника да приступи или уређује податке са којима није овлашћен за интеракцију.

Сигурност софтвера је пресудна вештина за све програмере

Развој доброг софтвера је синоним за осигуравање да ваш софтвер може да издржи било који злонамерни напад. То је могуће постићи само писањем сигурног кода, сталним тестирањем апликације и одржавањем контроле над тим ко има приступ вашим подацима.

Сада када знате како да заштитите свој софтвер, можда ћете желети да се упознате са неким корацима развоја софтвера.

Емаил
6 корака за развој софтвера који би сви програмери требали знати

Припремате се за програмирање вашег првог програма? Обавезно следите ове кључне кораке за развој софтвера.

Прочитајте следеће

Повезане теме
  • Програмирање
  • Циберсецурити
  • Савети за кодирање
О аутору
Кадеисха Кеан (Објављено 15 чланака)

Кадеисха Кеан је програмер софтвера у пуном слогу и писац техничких / технолошких технологија. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производећи материјал који лако може разумети било који технолошки новак. Одушевљена је писањем, развојем занимљивог софтвера и путовањем по свету (кроз документарне филмове).

Више од Кадеисха Кеан

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.