امنیت رابط برنامهنویسی اپلیکیشن (API)، به تکنیک های پیشگیری و یا کاهش حملات به API ها اشاره دارد. APIها به عنوان چارچوب پشتیبان برای برنامه های موبایل و وب کار می کنند. بنابراین، محافظت از داده های حساسی که آنها منتقل می کنند بسیار مهم است.
API رابطی است که نحوه تعامل نرم افزارهای مختلف را مشخص می کند. انواع درخواستهایی که بین برنامهها رخ میدهند، نحوه ایجاد این درخواستها و انواع فرمت های دادهای که استفاده میشوند را کنترل میکند. API ها در برنامه های اینترنت اشیا (IoT) و در وب سایت ها استفاده می شوند. آنها اغلب دادهها را جمعآوری و پردازش میکنند یا به کاربر اجازه میدهند اطلاعاتی را که در محیطی که API پردازش میشود وارد کند.
به عنوان مثال، یک API وجود دارد که نقشه های گوگل را اجرا می کند. یک طراح وب می تواند نقشه های گوگل را در صفحه ای که در حال ساخت آن است قرار دهد. هنگامی که کاربر از Google Maps استفاده می کند، از کدهای جداگانه طراح استفاده نمیکند، بلکه آنها به سادگی از یک API از پیش نوشته شده توسط Google استفاده می کنند. امنیت API شامل امنیت تمام APIهایی است که شما در اختیار دارید و همچنین آنهایی که به طور غیرمستقیم استفاده می کنید.
امنیت API REST
یک REST API راهی برای ارتباط دو سیستم کامپیوتری مثل یک مرورگر وب و سرورها از طریق HTTP است. امنیت REST API میتواند از حملاتی که شامل دادههای مخربی که مهاجم در تلاش است با استفاده از یک API معرفی کند، جلوگیری کند.
REST، استاندارد دیگری از API برای دسترسی به اطلاعات پایگاه داده و تغییر آن اطلاعات است. داده های قابل ذخیره سازی که ارتباط کاربر و سرور را ساده می کند. برای ارتباط میان دو وب سرویس یا اپلیکیشن استفاده می شود و مشخص می کند دستگاه های مختلف چگونه به هم دیگر متصل شوند.
REST API از پروتکلهای لایه سوکتهای امن (SSL)، امنیت لایه انتقال (TLS) و پروتکل امن انتقال ابرمتن (HTTPS) پشتیبانی میکند که با رمزگذاری دادهها در طول فرآیند انتقال، امنیت را فراهم میکنند. همچنین میتوانید APIهای REST را با توکنهایی که برای اطمینان از معتبر بودن ارتباطات قبل از اجازه دادن به آنها استفاده میشود، ایمن کنید.
در سطح API، امنیت با بررسی داده های در حال حرکت به محیط API کار می کند. در سطح برنامه وب ، امنیت API تلاشها برای عدم کارکرد درست اپلیکیشن و یا ورود کاربران غیرمجاز و سرقت اطلاعات حساس را مسدود می نماید.
پروتکل دسترسی آسان به اشیاء (SOAP) در انتقال اطلاعات بین رایانه ها استفاده می شود. از امضاهای XML و نشانهگذاری تاییدیه امنیتی (SAML) برای احراز هویت و مجوز دادن به پیامهایی که منتقل میشوند استفاده میکند. به این ترتیب، کلیدهای API را فراهم می کند که از دسترسی مهاجمان جلوگیری می کند.
حفاظت از داده ها، به ویژه با توجه به ظهور پروژه های وابسته به داده، بسیار مهم است. بهترین راه برای ایمن سازی API ها، پیروی از بهترین شیوه های امنیتی API در زیر است.
امنیت API با درک خطرات درون سیستم شما آغاز می شود. برای شناسایی نقاط ضعف در چرخه عمر API، می توانید به دنبال آسیب پذیری های خاص باشید. به عنوان مثال، میتوانید حملات مبتنی بر امضا را بررسی کنید، مانند حملات تزریق SQL ، از قوانین سختتر برای مسیرها و طرحوارههای JSON استفاده کنید، یا از Rate Limiting برای محافظت از پشتیبانهای API استفاده نمایید.
JSON مخفف عبارت JavaScript Object Notation به معنای زبان نماد گذاری اشیاء در جاوا اسکریپت است و برای انتقال داده مورد استفاده قرار میگیرد. یک فایل JSON با پسوند json. ذخیره میشود.Rate Limiting، کاربران و باتهایی که بیش از حد از ویژگیها و منابع سایت استفاده میکنند را block میکند. و میتواند تعداد زیادی از حملات باتها را شناسایی و متوقف کند. در واقع Rate limiting، یک استراتژی برای محدود کردن ترافیک شبکه است.
توکنهای امنیتی با نیاز به احراز هویت یک توکن در دو طرف ارتباط قبل از اجازه ادامه ارتباط کار میکنند. توکن ها را می توان برای کنترل دسترسی به منابع شبکه استفاده کرد زیرا هر برنامه یا کاربری که سعی کند با منبع شبکه بدون توکن مناسب تعامل داشته باشد رد می شود.
رمزگذاری با پنهان کردن داده ها در یک انتهای ارتباط کار می کند و تنها در صورت استفاده از کلید رمزگشایی مناسب، امکان رمزگشایی در انتهای دیگر را فراهم می کند. در غیر این صورت، داده های رمزگذاری شده ترکیبی بی معنی از کاراکترها، اعداد و حروف است. رمزگذاری با غیرقابل خواندن دادهها برای کاربران غیرمجاز که دستگاههایشان قادر به رمزگشایی دادهها نیستند، از امنیت API پشتیبانی میکند.