Practica „Verifică API-urile și după OWASP API Security Top 10” înseamnă evaluarea securității interfețelor de programare aplicativă folosind lista oficială a OWASP cu cele mai critice vulnerabilități specifice API-urilor (API1:2023 până la API10:2023). Spre deosebire de OWASP Top 10 clasic, care se concentrează pe aplicațiile web tradiționale, această listă abordează riscuri unice precum manipularea excesivă a datelor (BOLA) sau lipsa limitării ratei de solicitări. Ignorarea acestei verificări expune proiectul tău la atacuri severe care pot duce la furt de date, acces neautorizat sau întreruperea serviciilor, afectând direct încrederea utilizatorilor și conformitatea legală.

Cum o aplici

  1. Identifică endpoint-urile: Listează toate rutele API publice și interne.
  2. Mapare la riscuri: Pentru fiecare rută, verifică dacă este vulnerabilă la oricare dintre cele 10 categorii (ex: Broken Object Level Authorization, Excessive Data Exposure).
  3. Implementare măsuri: Adaugă validare strictă a input-ului, autentificare robustă (OAuth2/JWT) și limitarea ratei de cereri (Rate Limiting).
  4. Documentare: Asigură-te că specificația OpenAPI/Swagger reflectă exact comportamentul de securitate implementat.

Exemplu

O practică incoreasă este returnarea tuturor câmpurilor unui obiect utilizator, inclusiv parole hashuite sau ID-uri interne, doar pentru că clientul nu le folosește.

// GREȘIT: Returnare excesivă de date
app.get('/users/:id', async (req, res) => {
    const user = await User.findById(req.params.id);
    res.json(user); // Include passwordHash, internalId, etc.
});

// CORECT: Proiecție explicită a câmpurilor necesare
app.get('/users/:id', async (req, res) => {
    const user = await User.findById(req.params.id).select('name email avatar');
    if (!user) return res.status(404).json({ error: 'Not found' });
    res.json(user);
});

Cum verifici

  • Scanning automat: Folosește instrumente precum OWASP ZAP sau Postman Collections cu scanere de securitate integrate pentru a detecta vulnerabilități cunoscute.
  • Testare manuală: Verifică dacă poți accesa resurse ale altor utilizatori modificând ID-ul în URL (test BOLA).
  • Audit de cod: Caută în codul sursă lipsa validării ownership-ului obiectelor și a filtrării răspunsurilor.

Greșeli frecvente

  1. Confundarea cu OWASP Top 10 clasic: Aplicarea doar a regulilor generale web ignoră riscurile specifice API, cum ar fi manipularea parametrilor de query pentru extragerea masivă de date.
  2. Lipsa Rate Limiting: Nu setarea unor limite pentru numărul de cereri per minut permite atacurile de tip DoS sau brute-force asupra endpoint-urilor de autentificare.
  3. Validare superficială: Acceptarea datelor JSON fără a verifica tipurile sau constrângerile de lungime, facilitând atacuri de tip Injection.

Resurse gratuite

Alte subiecte din „OWASP Top 10 și standarde”