0% ont trouvé ce document utile (0 vote)
144 vues4 pages

Securité Des API

Sécurité Api

Transféré par

elyahfrisco7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
144 vues4 pages

Securité Des API

Sécurité Api

Transféré par

elyahfrisco7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Guide de Sécurité des APIs

De A à Z

Par : UN-IT
December 22, 2024

Contents

1 Introduction 2

2 Menaces courantes sur les APIs 2


2.1 Manque d’authentification et d’autorisation . . . . . . . . . . . . . . . . . . . . 2
2.2 Attaques par injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Attaques par force brute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4 Surcharge (DDoS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Meilleures pratiques pour sécuriser une API 2


3.1 Authentification et autorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Validation des entrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3 Contrôle d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.4 Limitation de débit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.5 Utilisation de HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.6 Gestion des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.7 Journalisation et surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 Conclusion 4

1
1 Introduction
Les APIs (Interfaces de Programmation Applicative) sont essentielles pour les applications
modernes, permettant la communication entre les serveurs et les clients. Cependant, elles
constituent une cible privilégiée pour les attaquants. Ce guide explique les principales menaces
pesant sur les APIs et propose des solutions concrètes pour les protéger.

2 Menaces courantes sur les APIs


2.1 Manque d’authentification et d’autorisation
Les APIs non authentifiées permettent à n’importe qui d’accéder aux ressources, tandis qu’une
mauvaise autorisation permet à des utilisateurs non autorisés d’accéder à des données sensibles.

2.2 Attaques par injection


Des entrées utilisateur non filtrées peuvent permettre des injections SQL, des commandes, ou
d’autres actions malveillantes.

2.3 Attaques par force brute


Les attaquants tentent de deviner des clés API, des identifiants ou des mots de passe en testant
un grand nombre de combinaisons.

2.4 Surcharge (DDoS)


Un grand nombre de requêtes simultanées peut rendre l’API indisponible.

3 Meilleures pratiques pour sécuriser une API


3.1 Authentification et autorisation
• Utilisez des clés API uniques pour chaque client :
// Validation de la cl\’e API
$apiKey = $_SERVER[’HTTP_API_KEY’];
if ($apiKey !== ’votre_cle_api’) {
http_response_code(401);
die(’Cl\’e API invalide.’);
}

• Implémentez OAuth 2.0 pour une authentification robuste.

• Utilisez des tokens JSON Web Token (JWT) pour vérifier les utilisateurs :
$token = $_SERVER[’HTTP_AUTHORIZATION’];
try {
$decoded = JWT::decode($token, $secretKey, [’HS256’]);
} catch (Exception $e) {

2
http_response_code(401);
die(’Token invalide.’);
}

3.2 Validation des entrées


• Filtrez et validez toutes les données envoyées à l’API pour èviter les injections SQL et
autres attaques :
// Exemple de validation
$data = json_decode(file_get_contents(’php://input’), true);
if (!filter_var($data[’email’], FILTER_VALIDATE_EMAIL)) {
http_response_code(400);
die(’Email invalide.’);
}

3.3 Contrôle d’accès


• Utilisez un modèle de permissions pour limiter l’accès aux ressources :
// V\’erification des permissions
if (!$user->hasPermission(’view_resource’)) {
http_response_code(403);
die(’Acc\‘es refus\’e.’);
}

3.4 Limitation de débit


• Implémentez une limitation de débit pour empêcher les abus :
// Limitation des requ\^etes
$ip = $_SERVER[’REMOTE_ADDR’];
if (rateLimitExceeded($ip)) {
http_response_code(429); // Trop de requ\^etes
die(’Trop de requ\^etes. R\’essayez plus tard.’);
}

3.5 Utilisation de HTTPS


• Chiffrez toutes les communications entre le client et l’API avec HTTPS pour èviter les
interceptions :
// Redirection vers HTTPS
if ($_SERVER[’HTTPS’] !== ’on’) {
header(’Location: https://’ . $_SERVER[’HTTP_HOST’] . $_SERVER[’
REQUEST_URI’]);

3
exit();
}

3.6 Gestion des erreurs


• Ne divulguez jamais de détails sur les erreurs dans les réponses de l’API. Utilisez des
messages génériques :
// R\’eponse g\’en\’erique
http_response_code(500);
echo json_encode([’error’ => ’Une erreur interne est survenue.’]);

3.7 Journalisation et surveillance


• Consignez toutes les requêtes et erreurs pour détecter les activités suspectes :
// Exemple de journalisation
$log = "[" . date(’Y-m-d H:i:s’) . "] IP: " . $_SERVER[’REMOTE_ADDR’];
file_put_contents(’logs/api.log’, $log, FILE_APPEND);

4 Conclusion
La sécurisation d’une API est un processus continu qui nécessite une vigilance constante et
l’adoption de bonnes pratiques. En appliquant les techniques présentées dans ce guide, vous
pouvez protéger vos APIs contre les menaces courantes et garantir leur intégrité et leur disponi-
bilité.

Vous aimerez peut-être aussi