برنامه نویس در حوزه مالی، فعال در صنعت پرداخت و همچنین یکی از بنیانگذاران فون پی
آنچه از Open API نمیدانیم
مفهوم API چیست؟
کلمه API مخفف عبارت Application Programming Interface می باشد و به معنی یک سری توابع، پروتکل ها و یا کانال های ارتباطی جهت ایجاد ارتباط بین چند بخش مختلف و یا ایجاد دسترسی به یک قابلیت و یا سرویس فراهم شده توسط یک سیستم و یا کسب و کار برای سایرین می باشد.
فرض کنید شما میخواید یک وب سایت فروشگاهی با قابلیت فروش کالا پیاده سازی کنید، یا باید تمامی کالاها را خود تامین کنید و هچنین فرایند ثبت سفارش و تحویل کالا را خود شما انجام دهید و یا از پتاسیل و قابلیت های دیجیکالا بهره بگیرید.
حال فرض کنید شما به API لیست کالاها و ثبت سفارش دیجیکالا دسترسی دارید. بدین ترتیب میتواند تنها به عنوان یک واسط عمل کنید و اطالاعات محصولات را از دیجیکالا دریافت کرده و نمایش دهید و همچنین سفارش های دریافتی را مستقیما برای پردازش به دیجیکالا ارسال نمایید.
مفهموم Open API چیست؟
هر کسب و کاری که بخواهد امکان دسترسی به سرویس های خود را در اختیار سایر کسب و کارها قرار دهد باید دسترسی به API های خود را باز کند که به این مفهموم Open API گفته میشود
از نمونه هایی که میتوان بیان کرد Open Banking می باشد که به معنی ارایه بخشی از سرویس های بانکی برای سایر کسب و کارها با هدف کسترش عملیات بانکی می باشد.
به عنوان مثال یک فروشگاه اینترنتی Market Place باید روزانه مبالغ دریافتی از مشتریان خود را با تامیین کننده های کالای خود تسویه کنند. در حال معمول این فروشگاه باید هر روز و یا هر چند روز یکبار یک لیست (معمولا به صورت Excel) از تمامی تسویه های خود را تهیه کند و از طریق نزدیکترین شعبه و یا درگاه اینترنت بانک اقدام به بارگذاری لیست تسویه های خود نمایید. این کار نیازمند صرف زمان و نیروی انسانی می باشد و همچنین محدودیت زمانی زیرا در روزهای تعطیل امکان دسترسی به شعب بانک وجود ندارد.
با استفاده از مفهوم Open Banking و دسترسی به سرویس های پایا و حساب به حساب فراهم شده توسط بانک خود فروشگاه میتواند از طریق فرخوانی APIپایا بانک درخواست تسویه خود را بدون دخالات نیروی انسانی انجام داده و تمامی فرایند تسویه با پذیرندگان خود را مکانیزه نماید.
و یا فروشگاه دیجیکالا با ارایه سرویس دریافت لیست کالاهای پر فروش و همچنین ثبت سفارش امکان فروش کالا را برای سایر کسب و کاره فراهم نماید.
آیا Open API امنیت کسب و کار شما را تهدید میکند؟
منظور از تهدید امنیت کسب و کار امکان نفوذ به زیرساخت شما توسط هکرها می باشد. آیا Open Api این امکان را به راحتی فراهم میکند یا خیر؟
فرض ما در این مقاله بر این است که کسب و کار مربوط در حال ارایه سرویس به مشتریان خود از طریق کانل ارتباطی اینترنت می باشد. معنی این جمله یعنی امکان دسترسی به سرویس های کسب و کار برای تمامی افرادیست که به شبکه اینترنت دسترسی دارند.
در مثال های مطرح شده ی بالا هم بانک ها و هم فروشگاه اینترنتی محیطی را برای کاربران خود فراهم کرده اند که کاملا در معرض دسترس عموم مردم می باشد. به این معنی که افراذی که قصد سواستفاده را دارند نیز میتواند به سرویس هایی که به ظاهر open نیستند دسترسی داشته باشند.
کسب و کاری همانند دیجیکالا Open API ارایه نکرده است اما باقدری تلاش میتوان لیست تمامی سرویس هایی که در دسترسی می باشند را یافت و اقدام به تلاش برای شبیه سازی سفارش از کانلی به غیر از وب سایت دیجیکالا نمود. و یا به واسطه سرویس های موجود بتوان به اطلاعات مشتریان دیجیکالا دسترسی پیدا کرد.
وقتی قصد انتشار یک اپ موبایل، وب سایت و یا وب اپ را دارید باید به این نکته توجه کنید که شما بخشی از سرویس های خود را در معرض دسترسی عموم قرار داده اید در حالی که Open API را ارایه نکرده اید. پس باید حتما تمامی مواردی که میتوانند امکان دسترسی غیر مجاز به سرویس های شما را فراهم کنند را شناسایی و راهکارهای مربوطه را پیاده سازی کنید.
منابع متعددی وجود دارند که راهکارهایی که در جهت جلوگیری از سواستفاده از سرویس های شما باید در نظر گرفته شوند را مطرح کرده اند و با پیاده سازی این راهکارها میتوانید تا حد بالایی نه 100% امنیت سرویس های خود را تضمین نمایید
میتوان به بخشی از موارد مهم در ایجاد امنیت سرویس ها که برگرفته از سایت https://owasp.orgمیباشد عبارت اند از:
- کنترل دسترسی به منابع با ایجاد فرایند تخصیص توکن
- مدیریت خطاها
- کنترل پارامترهای ورودی
- کنترل مبدا ورود درخواست ها
- ایجاد کانل امن در برقرار ارتباط
- لحاظ قوانین سختگیرانه در تخصیص کلمه های عبور
- عدم ذخیره اطلاعات مهم از قبلی کلمه عبور به صورت Plain
- لاگ تمامی اتفاق ها در سیستم
- مانیتور کردن تمامی درخواست ها
- تست نفوذ به صورت دوره بر روی سرویس های ارایه شده
- محدود سازی تعداد درخواست های ارسالی در بازهای زمان مشخص
- و بسیاری موارد دیگر ...
برای بررسی دقیق تر این موارد میتواند با سایت https://owasp.org مراجعه نمایید. نکته ای که همیشه باید در پیاده سازی سرویس های خود در نظر داشته باید این موضوع است که قرار است همه افراد به سرویس های شما دسترسی داشته باشند حالا چه به صورت غیر مجاز و یا مجاز در قالب Open API.ارایه ی سرویس به عنوان Open APIتغییر و یا کار بیشتری در مسولیت شما برای افزایش امنیت سرویس های شما اضافه نمیکند و شما در هر صورت باید تمامی موارد امنیتی را در نظر گرفته و به صورت مداوم نیز اقدام به شناسایی تهدید های جدید نمایید.
پس Open API به معنی بازشدن دسترسی به منابع، داده ها و زیرساخت شما برای هکرها و افرادی که قصد سواستفاده دارند نیست بله امکان به کارگیری سرویس های شما برای سایر کسب و کارها را فراهم میکند.
معمولا در فرایند ارایه Open API استاندارد های مشخصی و ساده ای وجود دارد که تمامی مشتریان سرویس ها شما باید رعایت کنند و عبارت اند از:
- عدم انتشار کلید دسترسی به API
- محدود سازی فرخوانی API از مبدا های مشخص و اعلام شده
در فرایند پیاده سازی Open API باید به این نکته توجه داشت که در صورت لو رفتن کلید دسترسی API تنها منابع مربوط به آن کسب و کار تهدید میشوند و سایر بخش های کسب و کار شما آسیب پذیر نخواهد بود.
مطلبی دیگر از این انتشارات
دریافت اطلاعات از سرور و نمایش در ریسایکلر ویو (mvvm,rxjava,retrofit,picasso)
مطلبی دیگر از این انتشارات
حوزههای اصلی صنعت فناوریهای مالی
مطلبی دیگر از این انتشارات
شخصی سازی سرویس ورکر create-react-app بدون ejecting و با استفاده از Workbox