تا حالا شده که هنگام راهاندازی افزونه وردپرسی از خود بپرسید که کلید Api key یا Api Code چه فایدهای دارد؟ اصلا این کلیدها از کجا آمدهاند و چه کارهایی انجام میدهند؟ اگر صاحب وبسایت هستید یا نقشی در عملکرد وبسایت دارید، نباید مطالعه درمورد این کلید را پشت گوش بیاندازید! در این مقاله، ماهیت و وظیفه کلید api، عملکرد و ویژگیهای آن را به شما توضیح خواهیم داد. حتما تا انتهای این مقاله با ما همراه باشید.
API چیست؟
اصطلاح API مخفف سه کلمه Application Programming Interface که در فارسی به معنای رابط برنامه نویسی کاربردی یا رابط برنامه نویسی نرمافزاری است. Api درواقع کدی است که برای شناسایی و احراز هویت یک برنامه یا کاربر استفاده میشود. این شناسهها بسیار منحصر بهفرد هستند، بهطوریکه برای عملیات احراز هویت، رمز مخفی ارائه میدهند.
این شناسهها از نرم افزارهای کامپیوتری منتقل میشوند، سپس این برنامهها apiها را فراخوانی میکنند تا کاربر، توسعهدهنده یا یک وبسایت را شناسایی کند. مثلا فرض کنید که شما یک افزونه نصب کردهاید که برای فعال شدن اجازه اتصال به وبسایت مرجع را میخواهد! در این شرایط api وبسایت مرجع پیدا شده و در سایت وردپرسی قرار داده میشود تا اتصال انجام بگیرد.
اگر بخواهیم لپ کلام را درمورد کلید api بگوییم، باید به این دو مورد اشاره کنیم:
- احراز هویت پروژه: کلید api نرمافزار درخواستکننده را شناسایی میکند. هر پروژه یک کلید منحصر بهفرد دارد که آن را متمایز میکند.
- مجوز پروژه: api تعیین میکند که آیا برنامه درخواستکننده مجوز استفاده از این کلید را دارد یا خیر. درصورت صدور مجوز، این کلید به چه سرویسهایی اجازه دسترسی دارد؟
زمانی که یک Api key در یک درخواست ارائه میشود، api آن را با پایگاه داده مشتری خود بررسی میکند، سپس درخواست رد یا پذیرفته میشود.
چگونه از Api key استفاده کنیم؟
برای استفاده از کلید api مستقیم به سراغ درخواست نروید! قبل از هرچیز، به وبسایت توسعهدهنده api مراجعه کنید تا از تمام چیزهایی که برای شروع لازم است مطلع شوید. در بیشتر مواقع از شما خواسته میشود که یک حساب توسعه دهنده ایجاد کنید. ایجاد این حساب به ثبت یک سری اطلاعات مانند ایمیل نیاز دارد. در مرحله بعد میتوانید پروژه خود را ثبت کنید. در ثبت پروژه هرگونه اطلاعات مربوطه که فکر میکنید صاحبان api باید در جریان باشند را بنویسید.
بعد از اجرای این مراحل شما یک api دریافت میکنید. این شناسه یک رشته از کاراکترهاست که بهطور منحصر بهفرد مرتبط با پروژه شما تولید شده است. شناسهای که باید انتظار داشته باشید چیزی شبیه به این است:
HTML
JPkxhc9cGFv35OWu267fsx8R6uZj29GL
البته، این امکان هم وجود دارد که شما بهجای یک api، دو عدد دریافت کنید! یکی از آنها کلید عمومی و دیگری کلید خصوصی نام دارد. شما کلید عمومی را میتوانید بهاشتراک بگذارید، اما دسترسی محدودتری به دادهها و عملکردهای API دارید. از طرف دیگر کلید خصوصی، کلیدی است که نباید با کسی به اشتراک گذاشته شود. این کلید یک شناسه برای پروژه شما است که با حساب توسعهدهنده خود میتوانید به تمام دادهها دسترسی داشته باشید.
آیا کلیدهای API امن هستند؟
از آنجایی که api حاوی اطلاعات بسیار حساسی است، این سوال مطرح است که آیا کلیدهای api ایمن هستند؟ همچنین، اطلاعات مهم apiها باعث شده تا یکی از مهمترین اهداف حملات سایبری قرار بگیرند، باتوجه به این موضوع باید بگوییم که این کلیدها بهتنهایی امنیت کافی را ارائه نمیدهند.
اول آنکه این کلیدها نمیتوانند کاربران را بهصورت تکی احراز هویت کنند، این احراز هویت برای پروژه یا برنامهای که درخواست را ارائه میکند انجام میشود. کلیدهای api در زمینه امنیت مانند پسورد هستند، تنها زمانی بیشترین تاثیر را دارند که در جای امن ذخیره شوند، بهمحض آنکه در دستان اشتباه قرار بگیرند، راه سو استفاده باز میشود. در صورت باز شدن این راه هکرها فرصت استفاده نامحدود از کلید api را دارند چون این کلیدها بهندرت به تاریخ انقضا میرسند. البته، در این شرایط باید اقدامات لازم برای غیرفعالسازی یا بازسازی کلید انجام شود.
باتوجه به نکاتی که گفتیم دیگر جای تعجب ندارد که امروزه Api از احراز هویت و مجوز کاربر برای تایید درخواستها استفاده کند. این دو مرحله با توکنهای احراز هویت انجام میشوند که حتی از کلیدهای API ایمنتر هستند.
چگونه API را بهطور ایمن ذخیره کنیم؟
از کلید api باید مانند یک رمز عبور بهخوبی نگه داری کنید! گذراندن چند مرحله اساسی به شما کمک میکند تا خطر سرقت api را تا حد زیادی کاهش دهید:
- کلید api را در جای عمومی یادداشت نکنید!
- زمانیکه پروژه خود را مستند میکنید، توجه داشته باشید که در اسکرین شاتها، URLها یا هر سند دیگری بهطور تصادفی کلید api را دردسترس نگذارید.
- کلید API خود را بهطور مسقیم در برنامه خود ننویسید، در این صورت هر کسی که به فایلهای منبع شما دسترسی داشته باشد میتواند کلید شما را ببیند.
- Api را ازطریق ایمیل بهاشتراک نگذارید!
- همیشه برای درخواستهای API از HTTPS/SSL استفاده کنید، درغیر این صورت برخی از APIها درخواست شما را وارد نمیکنند.
- یک کلید API منحصر بهفرد به هر پروژه اختصاص دهید. با این کار درصورت به خطر افتادن یک کلید میتوانید بدون تاثیرگذاشتن بر پروژههای دیگر آن را بازسازی یا غیرفعال کنید.
یک مثال ساده از کلید API!
از رایجترین نمونههای استفاده از کلید api میتوان به گوگل مپ اشاره کرد! این ابزار گوگل از کلیدهای api برای ایمنسازی درخواستهای خود برای دادههای نقشه استفاده میکند. شما پس از ایجاد یک حساب توسعهدهنده بهراحتی میتوانید یک کلید api گوگل مپ ایجاد کنید. برای این کار توجه داشته باشید که گوگل مپ فقط درخواستهای ایمن شده با HTTPS را میپذیرد.
چه زمانی از کلید API استفاده کنیم؟
آگاهی از زمان استفاده از api میتواند کمی گیجکننده باشد. کاربردهای رایج کلید api شامل موارد زیر میشوند:
- مسدود کردن ترافیک ناشناس: ترافیک ناشناس میتواند مخرب باشد. Api key برای رفع اشکال یا تجزیه و تحلیل برنامهها در این ترافیک کاربرد دارد.
- کنترل تعداد تماسهای برقرار شده با API: این کلید میتواند برای کنترل مصرف API، محدود کردن ترافیک و اطمینان از دسترسی ترافیک قانونی به API مفید باشد.
- شناسایی الگوهای استفاده در ترافیک API: شناسایی الگوهای استفاده برای شناسایی فعالیتها یا مشکلات مخرب در API بسیار مهم است.
- فیلترها: کلیدهای API خاص میتوانند سری رویدادهای ایجاد شده در سرور را فیلتر کنند. از آنجایی که هر درخواست یک کلید مرتبط با خود را دارد، دارندگان API میتوانند براساس آن فیلتر اجرا کنند تا تمام درخواستهای یک کلاینت خاص برای آنها نشان داده شود. این قابلیت نظارتی از api در برابر ترافیک مضر محافظت میکند.
چه زمانی نمیتوانیم از کلید API استفاده کنیم؟
باوجود کاربردهای متنوع کلید api باید این موضوع را بپذیرید که این کلیدها دارای محدودیت هستند! مواردی که استفاده از آنها کاربرد ندارد به این صورت هستند:
- استفاده بهعنوان مجوز امن: کلیدهای API را نمیتوان برای مجوزهای ایمن استفاده کرد زیرا به اندازه توکنهای احراز هویت امن نیستند. در عوض، آنها برنامه یا پروژهای را شناسایی میکنند که API را فراخوانی میکند.
- شناسایی سازندگان یک پروژه: کلیدهای API توسط پروژهای که یک تماس برقرار میکند تولید میشود، اما نمیتوان از آن برای شناسایی افرادی که پروژه را ایجاد کردهاند، استفاده کرد.
- شناسایی کاربران: کلیدهای API برای شناسایی پروژهها استفاده میشوند، نه کاربرانی که به یک پروژه دسترسی دارند.
ایمنسازی درخواستها با کلیدهای API
همانطور که در این مطلب مطالعه کردید، کلیدهای api تنها معیار امنیتی api نیستند، اما مزایای زیادی دارند که نباید آنها را نادیده بگیریم. این کلیدها برای احراز هویت یکپارچهسازیهای api ضروری هستند. به کمک آنها میتوانید پروژه خود را احراز هویت کرده و مجوز لازم برای دسترسیهای مختلف را دریافت کنید. اما به خاطر داشته باشید که کلید api دسترسی برای تغییر یک پروژه را فراهم نمیکند.