Dasturiy vositalar xavfsizligi Amaliy ish-7 Bajardi: Amonov. R tekshirdi: Tursunov. O guruh


Download 454.23 Kb.
bet2/2
Sana22.04.2023
Hajmi454.23 Kb.
#1377222
1   2
Bog'liq
Amonov.R DVX-7

}
}

if (has_upper && has_lower && !has_special && !has_digit && !has_space) {
return true;
} else {
return false;
}
}

int main() {
string first_name, last_name;
cout << "Ismingizni kiriting: ";
cin >> first_name;
cout << "Familiyangizni kiriting: ";
cin >> last_name;

bool valid_first_name = check_name(first_name);
bool valid_last_name = check_name(last_name);

if (valid_first_name && valid_last_name) {
cout << "Ism va familiya to'g'ri kiritildi" << endl;
} else {
cout << "Ism va familiyada belgilar, sonlar yoki probel mavjud." << endl;
}

return 0;
}


2-dastur




#include
#include
#include

using namespace std;

int main() {
string phone_number;
cout << "Telefon raqamingizni kiriting: ";
getline(cin, phone_number);
regex pattern("^\\+998\\s\\d{2}\\s\\d{3}\\s\\d{2}\\s\\d{2}$");
if (regex_match(phone_number, pattern)) {
cout << "Telefon raqam to'g'ri formatda kiritildi\n";
} else {
cout << "Telefon raqam noto'g'ri formatda kiritildi\n";
}
return 0;
}
3-dastur



#include


using namespace std;

bool isChar(char c)


{
return ((c >= 'a' && c <= 'z') &&
(c >= 'A' && c <= 'Z'));
}
bool isDigit(const char c)
{
return (c >= '0' && c <= '9');
}
bool is_valid(string email)
{
if (!isChar(email[0])) {
return 0;
}
int At = -1, Dot = -1;
for (int i = 0;
i < email.length(); i++) {
if (email[i] == '@') {
At = i;
}
else if (email[i] == '.') {
Dot = i;
}
}
if (At == -1 && Dot == -1)
return 0;
if (At > Dot)
return 0;
return !(Dot >= (email.length() - 1));
}
int main()
{
string email;
cout << "Emailni kiriting: ";
cin >> email;
bool ans = is_valid(email);
if (ans) {
cout << email << " : "
<< "email yaroqli" << endl;
}
else {
cout << email << " : "
<< "email yaroqsiz" << endl;
}
return 0;
}

4-dastur








#include
#include

using namespace std;

int main() {
string password;
cout << "Parolni kiriting: ";
getline(cin, password);

if (password.length() < 8) {
cout << "Parol kamida 8 belgidan ko'proq bo'lishi kerak!" << endl;
return 0;
}

bool has_uppercase = false;
for (char c : password) {
if (isupper(c)) {
has_uppercase = true;
break;
}
}

if (!has_uppercase) {
cout << "Parolda kamida bitta katta harf bo'lishi kerak!" << endl;
return 0;
}

bool has_lowercase = false;
for (char c : password) {
if (islower(c)) {
has_lowercase = true;
break;
}
}

if (!has_lowercase) {
cout << "Parolda kamida bitta kichik harf bo'lishi kerak!" << endl;
return 0;
}

bool has_digit = false;
for (char c : password) {
if (isdigit(c)) {
has_digit = true;
break;
}
}

if (!has_digit) {
cout << "Parolda kamida bitta raqam bo'lishi kerak!" << endl;
return 0;
}

bool has_special = false;
string special_characters = "!@#$%^&*()_-+={}[]\\|;:'\",.<>?/~`";
for (char c : password) {
if (special_characters.find(c) != string::npos) {
has_special = true;
break;
}
}

if (!has_special) {
cout << "Parolda kamida bitta maxsus belgi bo'lishi kerak!" << endl;
return 0;
}

cout << "Parol yaroqli!" << endl;

return 0;
}


Nazorat savollari
1. Ilovalarga noto‘g‘ri ma’lumotlar kiritilishi natijasida yuzaga keladigan muammolar va zaifliklar nimalardan iborat?
2. C++ dasturlash tilida qanday kirish qiymatini tekshiruvchi funksiyalar mavjud?
3. Kirish qiymatlarini qanday xususiyatlar bo‘yicha tekshirish amalga oshirish lozim hisoblanadi?
Javoblar

  1. Noto'g'ri ma'lumotlar kiritilishi natijasida, ilovalarda yuzaga keladigan muammolar va zaifliklar quyidagi holatlardan iborat bo'lishi mumkin:

  • Dastur ishlamaydi yoki ishlov berishida xatoliklar yuzaga keladi.

  • Ilonigizga yetarli ma'lumot kiritilmaganligi sababli dastur noto'g'ri natijalar chiqarishi mumkin.

  • Xavfsizlik muammolari yuzaga kelishi mumkin, masalan, xavfsizlik bo'sh joy kiritilishi, yoki SQL injeksiyasi kabi tizimlarni buzish uchun foydalanish mumkin.



  1. C++ dasturlash tilida, kirish qiymatini tekshiruvchi ko'plab funksiyalar mavjud. Masalan, std::isdigit() funksiyasi sonlar uchun true qiymatini qaytaradi, va aks holda false. Bundan tashqari, std::isalpha() funksiyasi harflar uchun true, aks holda false qaytaradi. std::isalnum() funksiyasi sonlar va harflar uchun true qiymatini qaytaradi.



  1. Kirish qiymatlari qanday xususiyatlar bo'yicha tekshirilishi lozim hisoblanadi, misol uchun:

  • Qiymatlar sonlar bo'lishi kerak (masalan, telefon raqami uchun).

  • Qiymatlar harflar bo'lishi kerak (masalan, ism va familiya uchun).

  • Qiymatlar belgilash qoidalari (masalan, e-mail manziliga kiritilgan qiymatda @ belgisi bo'lishi kerak).

  • Qiymatlar uzunligi cheksiz bo'lmasligi kerak (masalan, parol uchun).

Qiymatlarni tekshirish paytida xavfsizlikga e'tibor qaratilishi va xavfsizlik muammolari yuzaga kelishini oldini olish uchun ko'p amallar bajargan holda, ularning bir-biridan farqli bo'lgan xususiyatlari tekshirilishi lozim.
Download 454.23 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling