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

از کلید API باید مانند یک رمز عبور به خوبی نگه داری کنید! گذراندن چند مرحله اساسی به شما کمک میکند تا خطر سرقت API را تا حد زیادی کاهش دهید :
زمانیکه پروژه خود را مستند میکنید، توجه داشته باشید که در اسکرین شاتها، URLها یا هر سند دیگری بهطور تصادفی کلید api را دردسترس نگذارید.
کلید API خود را بهطور مسقیم در برنامه خود ننویسید، در این صورت هر کسی که به فایلهای منبع شما دسترسی داشته باشد میتواند کلید شما را ببیند.
همیشه برای درخواستهای API از HTTPS/SSL استفاده کنید، درغیر این صورت برخی از APIها درخواست شما را وارد نمیکنند.
یک کلید API منحصر بهفرد به هر پروژه اختصاص دهید. با این کار درصورت به خطر افتادن یک کلید میتوانید بدون تاثیرگذاشتن بر پروژههای دیگر آن را بازسازی یا غیرفعال کنید.
آگاهی از زمان استفاده از API میتواند کمی گیجکننده باشد. کاربردهای رایج کلید API شامل موارد زیر میشوند :
ترافیک ناشناس میتواند مخرب باشد. Api key برای رفع اشکال یا تجزیه و تحلیل برنامهها در این ترافیک کاربرد دارد.
این کلید میتواند برای کنترل مصرف API، محدود کردن ترافیک و اطمینان از دسترسی ترافیک قانونی به API مفید باشد.
شناسایی الگوهای استفاده برای شناسایی فعالیتها یا مشکلات مخرب در API بسیار مهم است.
کلیدهای API خاص میتوانند سری رویدادهای ایجاد شده در سرور را فیلتر کنند. از آنجایی که هر درخواست یک کلید مرتبط با خود را دارد، دارندگان API میتوانند براساس آن فیلتر اجرا کنند تا تمام درخواستهای یک کلاینت خاص برای آنها نشان داده شود. این قابلیت نظارتی از api در برابر ترافیک مضر محافظت میکند.
توسعه بینهایت / زندگی همه ما پر از داستانها و اتفاقاتی است که هرگز از یادمان نمیرود. لحظاتی که ما با تمام وجود و توانی که داشتیم، خواستیم ولی نتوانستیم، لحظاتی که باید چیزی را میدانستیم اما ندانستیم، تصمیمی را میگرفتیم اما جرأتش را نداشتیم و «نمیتوانی» تنها واژه آشنای روزهایمان بود. ما آمدیم تا از «میتوانم» هایی که در دل داشتیم، نردبانی بسازیم برای بالا رفتن، برای پیشرفت و برای توانستن…
توسعه بینهایت | Infinix Development

