فرض کنید در انگولار یک فرم ثبت سفارش عمومی داریم که اطلاعات فرم قرار هست توسط api به سرور ارسال بشه، برای اینکه در مقابل ربات هم محافظ بشه ما ری کپچا در نظر میگیریم.
اما مشکل اینجاست که حتی بعد از بیلد شدن با --prod هم باز این api در دسترس هست و به راحتی با اتصال به api میشه اطلاعات رو درج کرد، توکن و سایر چیزها هم در سورس انگولار قابل مشاهده هست، سوال من اینه چطور امنیت این جور وبسرویسها رو باید برقرار کرد؟
برای حل این ابهام در ذهن شما چندین سوال را مطرح و سپس به آنها پاسخ میدهم:
۱) آیا راهی وجود دارد که درخواستهای API را مخفی کنیم؟
خیر، تمام درخواستهای API توسط مرورگر کاربر ارسال میشود و چیزی که به سمت کلاینت مربوط میشود، امکان مخفی کردن ندارد.
۲) برای محافظت از API در برابر اطلاعات ارسالی کاربران چه کاری انجام دهیم؟
جهت محافظت API باید از احراز هویت توکن (Token Authentication) استفاده کنید. این کار معمولا با استفاده از روشهایی چون OAuth یا JWT انجام میشود.
فرآیند این احراز هویت بدین صورت هست که قبل از اینکه درخواست کاربر در سمت سرور انجام شود، اسکریپت بررسی میکند که آیا این کاربر اجازه دسترسی به اطلاعات را دارد یا خیر، اگر داشت که اطلاعات را دریافت و در غیر اینصورت با خطای ۴۰۳ مواجه می شود. این احراز هویت با استفاده از یک رشته به نام توکن (Token) انجام میشود. تا زمانیکه توکن معتبر است همه درخواستها انجام میشود.
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.