Avec le développement rapide d'Internet, l'utilisation de l'API (Application Programming Interface) devient de plus en plus courante, et l'interface API PHP est devenue le premier choix des développeurs. Cependant, avec l'utilisation généralisée des API, de plus en plus d'attaques malveillantes ont commencé à cibler les API. La protection des interfaces API est donc devenue une question importante.
Dans cet article, nous présenterons comment utiliser les restrictions de trafic et les pare-feu pour la protection des API.
Tout d'abord, comprenons le concept d'interface API. L'interface API fait référence à l'interface qui permet la communication entre les applications. Les interfaces API exposent les données et les fonctionnalités d'une application à d'autres applications, les rendant ainsi disponibles.
Comme toutes les applications Internet, les interfaces API rencontreront également des attaques malveillantes. Les attaquants peuvent utiliser des interfaces API pour effectuer certaines opérations malveillantes, telles que l'envoi de données de spam, l'interception de données de transmission, etc. Ces attaques peuvent entraîner une panne d’application ou une fuite de données. Il est donc crucial de protéger la sécurité des interfaces API.
La limite de trafic fait référence à la limitation du nombre d'accès à l'interface API, c'est-à-dire à la limitation du nombre de requêtes à l'interface API. En limitant le nombre d'accès à l'interface API, il est possible d'empêcher efficacement les attaquants malveillants d'avoir un accès excessif à l'interface API. De plus, la limitation du trafic peut protéger les applications contre les attaques par déni de service (DDoS).
En utilisant le framework PHP, la limitation du trafic peut être facilement obtenue. Les restrictions de trafic peuvent être définies au niveau de la couche de routage, de la couche contrôleur ou de la couche middleware. Vous trouverez ci-dessous un exemple de code de limitation de trafic basé sur le framework Laravel :
namespace AppHttpControllers; use IlluminateHttpRequest; class APICallController extends Controller { //限制每个IP每分钟最多访问20次API public function index(Request $request) { $limit = 20; $expiresInSeconds = 60; $requests = app(RateLimiter::class)->limiter('api')->get($request->ip()); if ($requests->remaining === 0) { return response('Too Many Attempts.', 429); } app(RateLimiter::class)->limiter('api')->hit($request->ip(), $expiresInSeconds); // 执行API逻辑 } }
Le code ci-dessus limite l'accès à l'API par adresse IP à un maximum de 20 fois par minute. Si cette limite est dépassée, le programme renverra un code d'état 429.
En plus de restreindre le trafic, les pare-feu sont également un moyen important de protéger les interfaces API. Les pare-feu peuvent filtrer les requêtes malveillantes et empêcher les attaquants de mener des attaques par injection, des attaques XSS, etc. sur les interfaces API.
Ce qui suit est un exemple de code de pare-feu basé sur PHP :
$allowed_ips = array('192.168.0.1', '192.168.0.2'); $valid_request = false; foreach ($allowed_ips as $allowed_ip) { $ip = htmlspecialchars($_SERVER['REMOTE_ADDR']); if ($ip == $allowed_ip) { $valid_request = true; break; } } if (!$valid_request) { header('HTTP/1.0 403 Forbidden'); exit(); } // 执行API逻辑
Le code ci-dessus autorisera uniquement les adresses IP de la liste blanche à accéder à l'interface API, et les autres adresses IP seront refusées.
La protection de la sécurité des interfaces API est cruciale, et les restrictions de trafic et les pare-feu sont des méthodes de protection courantes. En mettant en œuvre ces mesures de sécurité, les interfaces API peuvent être efficacement protégées contre les attaques malveillantes. Dans le même temps, les développeurs doivent également veiller à mettre à jour rapidement la sécurité de l'interface API afin de garantir que l'interface API est toujours dans les meilleures conditions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!