Като програмист или разработчик, значението на създаването на защитени приложения не може да бъде надценено.

Софтуерната сигурност се занимава с управлението на злонамерени атаки чрез идентифициране на потенциални уязвимости в софтуера и вземане на необходимите предпазни мерки за предпазване от тях.

Софтуерът никога не може да бъде 100% сигурен, защото разработчикът може да пренебрегне грешка, да създаде нови грешки в опит да поправи съществуващите случаи или да създаде нови уязвимости чрез актуализации.

Има обаче две ключови практики, които всички разработчици на софтуер могат да използват, за да гарантират, че създават защитен код за писане на софтуер на първо място и ефективно тестване на вашия код.

Как да напиша защитен код

Писането на защитен код се свежда до едно нещо - обработка на грешки. Ако можете да предвидите всяка потенциална стойност, с която потребителят може да захрани вашето приложение и да създадете отговор във вашата програма за тази стойност, тогава пишете защитен код.

instagram viewer

Това е много по-просто, отколкото си мислите, защото всички добри разработчици знаят почти всичко за приложенията, които разработват. Следователно трябва да знаете всяка стойност, която вашето приложение изисква за изпълнение на дадена задача (одобрените стойности) и да разберете, че всяка друга възможна съществуваща стойност е неодобрена стойност.

Писане на защитен код

Да предположим, че искате да създадете програма, която приема само две целочислени стойности от потребител и извършва операция по добавяне върху тях. С това едно изречение, като добър разработчик, вече знаете всичко за вашето приложение. Знаете всички стойности, които тази програма ще приеме (цели числа) и знаете задачата, която тази програма ще изпълни (операция по добавяне).

Създаване на програма в Java пример


импортиране на java.util. Скенер;
публичен клас Main {
// Основната функция, която изпълнява програмата и събира двете стойности
публична статична void main (String [] args) {
System.out.println ("Моля, въведете двете си цели числа:");
int стойност1;
стойност int2;
Вход за скенер = нов скенер (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
добавяне (стойност1, стойност2);
input.close ();
}
// функцията, която събира двете стойности и показва тяхната сума
частно статично добавяне на празнота (int value1, int value2) {
int сума;
сума = стойност1 + стойност2;
System.out.println ("Сумата от двете цели числа, които сте въвели:" + сума);
}
}

Кодът по-горе създава приложение, което точно отговаря на изискванията. При изпълнението ще изведе следния ред в конзолата:


Моля, въведете двете си цели числа:

След това приложението ще остане на пауза, докато потребителят не въведе две целочислени стойности в конзолата (това означава да въведе първата стойност, да натисне клавиша enter и да повтори).

Ако потребителят въведе стойностите 5 и 4 в конзолата програмата ще изведе следния изход:


Сумата от двете цели числа, които сте въвели: 9

Това е страхотно; програмата прави точно това, което трябва да направи. Ако обаче се появи нечестив потребител и въведе нецелочислена стойност, като например „g“, във вашето приложение ще има проблеми. Това е така, защото нито един код в приложението не предпазва от неодобрени стойности.

В този момент приложението ви ще се срине, създавайки потенциален шлюз във вашето приложение за хакера, който знае точно какво да прави по-нататък.

Защита на вашия пример за програма


импортиране на java.util. InputMismatchException;
импортиране на java.util. Скенер;
публичен клас Main {
// Основната функция, която изпълнява програмата и събира двете стойности
публична статична void main (String [] args) {
опитвам {
System.out.println ("Моля, въведете двете си цели числа:");
int стойност1;
стойност int2;
// използване на класа на скенера за четене на всеки вход от потребителя,
// и го присвояваме на съответната променлива (хвърля изключение, ако стойностите не са цели числа)
Вход за скенер = нов скенер (System.in);
value1 = input.nextInt ();
value2 = input.nextInt ();
// извиква функцията за добавяне и й предава двете стойности
добавяне (стойност1, стойност2);
// затваря входния поток, след като е приключил използването му
input.close ();
// обработваме всички грешки, хвърлени в блока try
} catch (InputMismatchException e) {
System.out.println ("Моля, въведете валидна целочислена стойност.");
} catch (Изключение e) {
System.out.println (e.getMessage ());
}
}
// функцията, която събира двете стойности и показва тяхната сума
частно статично добавяне на празнота (int value1, int value2) {
int сума;
сума = стойност1 + стойност2;
System.out.println ("Сумата от двете цели числа, които сте въвели:" + сума);
}
}

Кодът по-горе е защитен, защото изпълнява обработка на изключения. Следователно, ако въведете нецела стойност, програмата ще се прекрати правилно, докато създава следния ред код:


Моля, въведете валидна целочислена стойност.

Какво е обработка на изключения?

По същество обработката на изключения е модерната версия на обработката на грешки, където отделяте кода за обработка на грешки от нормалния код за обработка. В горния пример целият нормален код за обработка (или код, който потенциално може да хвърли изключение) е в рамките на опитвам и целият код за обработка на грешки е вътре улов блокове.

Ако разгледате по-отблизо примера по-горе, ще откриете, че има два блока за хващане. Първият отнема InputMismatchException аргумент; това е името на изключението, което се хвърля, ако се въведе нецела стойност. Вторият отнема Изключение аргумент и това е важно, тъй като целта му е да улови всяко изключение в кода, което разработчикът не е намерил по време на тестването.

Свързани: Изключения на Java: Справяте ли се правилно с тях?

Тестване на вашия код

Никога не трябва да подценявате силата на тестване и повторно тестване на вашия код преди опаковане. Много разработчици (и потребители на техните приложения) намират нови грешки, след като софтуерът е достъпен за обществеността.

Изчерпателното тестване на кода ви ще гарантира, че знаете какво ще прави вашето приложение при всеки възможен сценарий и това ви позволява да защитите приложението си от нарушения на данни.

Свързани: Как да кацнете първата си работа за тестване на софтуер

Помислете за горния пример. Ами ако след приключване тествате приложението само с цели числа? Може да се отдалечите от приложението, мислейки, че успешно сте идентифицирали всички потенциални грешки, когато случаят не е такъв.

Факт е, че може да не успеете да идентифицирате всички потенциални грешки; Ето защо обработката на грешки работи ръка за ръка с тестването на вашия код. Тестването на програмата по-горе показва, че в конкретен сценарий ще възникне една потенциална грешка.

Ако обаче съществува друга грешка, която не се появи по време на тестването, вторият блок за хващане в горния код ще се справи с нея.

Защита на вашата база данни

Ако вашето приложение се свързва с база данни, най-добрият начин да се предотврати достъпът до тази база данни е да се гарантира, че всички аспекти на вашето приложение са защитени. Какво обаче, ако вашето приложение е проектирано с единствената цел да осигури интерфейс към споменатата база данни?

Тук нещата стават малко по-интересни. В най-основната си форма база данни позволява на потребителя да добавя, извлича, актуализира и изтрива данни. Системата за управление на база данни е приложение, което позволява на потребителя да взаимодейства директно с база данни.

Повечето бази данни съдържат чувствителни данни, следователно, за да се запази целостта и да се ограничи достъпът до тези данни, има едно изискване за контрол на достъпа.

Контрол на достъпа

Контролът на достъпа се стреми да поддържа целостта на базата данни чрез определяне на типа хора, които имат достъп до база данни и ограничаване на типа достъп, който имат. Следователно, добрата система за управление на база данни трябва да може да регистрира кой има достъп до базата данни, по кое време и какво е направил.

Той също така трябва да може да попречи на регистриран потребител да има достъп или да редактира данни, с които не е упълномощен да взаимодейства.

Софтуерната сигурност е от решаващо значение за всички разработчици

Разработването на добър софтуер е синоним на гарантиране, че вашият софтуер може да издържи всяка злонамерена атака. Това е постижимо само чрез писане на защитен код, непрекъснато тестване на приложение и поддържане на контрол върху това кой има достъп до вашите данни.

След като знаете как да защитите софтуера си, може да искате да научите за някои стъпки за разработка на софтуер.

електронна поща
6 стъпки за разработка на софтуер, които всички програмисти трябва да знаят

Подготвяте ли се да кодирате първата си програма? Не забравяйте да следвате тези ключови стъпки за разработване на софтуер.

Прочетете Напред

Свързани теми
  • Програмиране
  • Кибер защита
  • Съвети за кодиране
За автора
Кадейша Кийн (Публикувани 15 статии)

Kadeisha Kean е разработчик на софтуер с пълен стек и писател на технически и технологични технологии. Тя има отчетливата способност да опростява някои от най-сложните технологични концепции; производство на материал, който може лесно да бъде разбран от всеки новак в технологията. Тя е запалена по писането, разработването на интересен софтуер и пътуването по света (чрез документални филми).

Още от Кадейша Кийн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.