مخفی کردن و یا جلوگیری از دسترسی مستقیم به apiهای عمومی در انگولار

فرض کنید در انگولار یک فرم ثبت سفارش عمومی داریم که اطلاعات فرم قرار هست توسط api به سرور ارسال بشه، برای اینکه در مقابل ربات هم محافظ بشه ما ری کپچا در نظر می‌گیریم.

اما مشکل اینجاست که حتی بعد از بیلد شدن با --prod هم باز این api در دسترس هست و به راحتی با اتصال به api میشه اطلاعات رو درج کرد،  توکن و سایر چیزها هم در سورس انگولار قابل مشاهده هست، سوال من اینه چطور امنیت این جور وب‌سرویس‌ها رو باید برقرار کرد؟ 

برچسب ها:
پرسیده شده در: 3 سال قبل
آمار بازدید: 697
vahidbn (45)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو
0

برای حل این ابهام در ذهن شما چندین سوال را مطرح و سپس به آنها پاسخ می‌دهم:

۱) آیا راهی وجود دارد که درخواست‌های API را مخفی کنیم؟

خیر، تمام درخواست‌های API توسط مرورگر کاربر ارسال می‌شود و چیزی که به سمت کلاینت مربوط می‌شود، امکان مخفی کردن ندارد.

۲) برای محافظت از API در برابر اطلاعات ارسالی کاربران چه کاری انجام دهیم؟

جهت محافظت API باید از احراز هویت توکن (Token Authentication) استفاده کنید. این کار معمولا با استفاده از روشهایی چون OAuth یا JWT انجام می‌شود.

 فرآیند این احراز هویت بدین صورت هست که قبل از اینکه درخواست کاربر در سمت سرور انجام شود، اسکریپت بررسی می‌کند که آیا این کاربر اجازه دسترسی به اطلاعات را دارد یا خیر، اگر داشت که اطلاعات را دریافت و در غیر اینصورت با خطای ۴۰۳ مواجه می شود. این احراز هویت با استفاده از یک رشته به نام توکن (Token) انجام می‌شود. تا زمانیکه توکن معتبر است همه درخواست‌ها انجام می‌شود.

ارسال شده در: 3 سال قبل
masoudsalehi (1725)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50 دارای 25 پاسخ صحیح دارای 25 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
جهت ارسال پاسخ ابتدا عضو سایت شوید.