Dengan perkembangan pesat Internet, penggunaan API (Antaramuka Pengaturcaraan Aplikasi) menjadi semakin biasa, dan antara muka API PHP telah menjadi pilihan pertama untuk pembangun. Walau bagaimanapun, dengan penggunaan API yang meluas, semakin banyak serangan berniat jahat telah mula menyasarkan API, jadi cara untuk melindungi antara muka API telah menjadi isu penting.
Dalam artikel ini, kami akan memperkenalkan cara menggunakan sekatan lalu lintas dan tembok api untuk perlindungan API.
Pertama sekali, marilah kita memahami konsep antara muka API. Antara muka API merujuk kepada antara muka yang membolehkan komunikasi antara aplikasi. Antara muka API mendedahkan data dan fungsi aplikasi kepada aplikasi lain, menjadikannya tersedia untuk digunakan.
Seperti semua aplikasi Internet, antara muka API juga akan menghadapi serangan berniat jahat. Penyerang boleh menggunakan antara muka API untuk melakukan beberapa operasi berniat jahat, seperti menghantar data spam, memintas data penghantaran, dsb. Serangan ini boleh menyebabkan kegagalan aplikasi atau kebocoran data. Oleh itu, melindungi keselamatan antara muka API adalah penting.
Had trafik merujuk kepada mengehadkan jumlah akses kepada antara muka API, iaitu mengehadkan bilangan permintaan kepada antara muka API. Dengan mengehadkan jumlah akses kepada antara muka API, penyerang berniat jahat boleh dihalang dengan berkesan daripada mempunyai akses yang berlebihan kepada antara muka API. Selain itu, pendikitan trafik boleh melindungi aplikasi daripada serangan penafian perkhidmatan (DDoS).
Dengan menggunakan rangka kerja PHP, pengehadan trafik boleh dicapai dengan mudah. Sekatan trafik boleh ditetapkan pada lapisan penghalaan, lapisan pengawal atau lapisan perisian tengah. Berikut ialah contoh kod pengehadan trafik berdasarkan rangka kerja 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逻辑 } }
Kod di atas mengehadkan akses kepada API bagi setiap alamat IP kepada maksimum 20 kali seminit. Jika had ini melebihi, program akan mengembalikan kod status 429.
Selain menyekat trafik, tembok api juga merupakan cara penting untuk melindungi antara muka API. Firewall boleh menapis permintaan berniat jahat dan menghalang penyerang daripada menjalankan serangan suntikan, serangan XSS, dsb. pada antara muka API.
Berikut ialah contoh kod firewall berasaskan 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逻辑
Kod di atas hanya akan membenarkan alamat IP dalam senarai putih mengakses antara muka API dan alamat IP lain akan dinafikan.
Melindungi keselamatan antara muka API adalah penting, dan sekatan trafik serta tembok api ialah kaedah perlindungan biasa. Dengan melaksanakan langkah keselamatan ini, antara muka API boleh dilindungi dengan berkesan daripada serangan berniat jahat. Pada masa yang sama, pembangun juga harus memberi perhatian untuk mengemas kini keselamatan antara muka API tepat pada masanya untuk memastikan antara muka API sentiasa berada dalam keadaan terbaik.
Atas ialah kandungan terperinci Antara Muka API PHP: Cara Melindungi Menggunakan Had Trafik dan Tembok Api. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!