← Məqalələrə qayıt
3. Sensitive Data Exposure (Həssas Məlumatların Sızması)
Bu nədir?
Həssas məlumatların sızması (Sensitive Data Exposure) – sistemin istifadəçi məlumatlarını (şifrələr, kredit kartı nömrələri, şəxsi məlumatlar və s.) kifayət qədər qoruyub saxlamadığı hallarda baş verən təhlükəsizlik zəifliyidir.
Necə baş verir?
- Şifrələnməmiş və ya zəif şifrələnmiş məlumatların ötürülməsi.
- HTTPS əvəzinə HTTP istifadəsi.
- Məlumat bazasında məlumatların açıq formada saxlanması.
- Şifrə kimi məlumatların “base64” və ya “md5” ilə kodlanması və zəif “salt” texnikaları.
- Gizli açarların (API keys, tokens) kodda sərbəst saxlanması.
Exploitation (İstismar)
Hücumçu zəif qorunan məlumatları ələ keçirərək:
- İstifadəçi hesablarına daxil ola bilər.
- Şəxsi və ya maliyyə məlumatlarını oğurlaya bilər.
- Sosial mühəndislik və ya fişinq kampaniyaları həyata keçirə bilər.
Qarşısı necə alınır?
- Bütün həssas məlumatlar AES-256 kimi güclü alqoritmlərlə şifrələnməlidir.
- HTTPS məcburi şəkildə istifadə olunmalıdır.
- Şifrə saxlanması üçün bcrypt, Argon2 kimi etibarlı hash metodlarından istifadə olunmalıdır.
- İstifadəçi məlumatlarına yalnız zəruri hallarda və məhdud icazələrlə çıxış təmin edilməlidir.
- Gizli açarlar .env fayllarında saxlanmalı və açıq repozitoriyalara yüklənməməlidir.
Nümunə
// Zəif nümunə:
let password = "123456";
storeInDatabase(password);
// Təhlükəsiz nümunə:
let bcrypt = require('bcrypt');
let hashedPassword = bcrypt.hashSync("123456", 10);
storeInDatabase(hashedPassword);
← Back to Articles
3. Sensitive Data Exposure
What is it?
Sensitive Data Exposure refers to vulnerabilities where an application fails to protect sensitive information such as passwords, credit card numbers, or personal data.
How does it happen?
- Unencrypted or weakly encrypted data transmission.
- Using HTTP instead of HTTPS.
- Storing sensitive data in plaintext in databases.
- Weak hashing of passwords like base64 or md5 with no salt.
- Storing secrets (API keys, tokens) directly in code.
Exploitation
Attackers may exploit exposed data to:
- Access user accounts.
- Steal personal or financial information.
- Conduct phishing or social engineering attacks.
How to prevent it?
- Encrypt sensitive data using strong algorithms (e.g., AES-256).
- Enforce HTTPS for all data transmissions.
- Use secure password hashing (e.g., bcrypt, Argon2).
- Apply strict access control to sensitive records.
- Store secrets in secure configuration files, not in source code.
Example
// Insecure example:
let password = "123456";
storeInDatabase(password);
// Secure example:
let bcrypt = require('bcrypt');
let hashedPassword = bcrypt.hashSync("123456", 10);
storeInDatabase(hashedPassword);