اگر فکر میکنی امنیت فقط برای Backend هست، اشتباه میکنی!
وقتی صحبت از امنیت یک Web App میشه، معمولاً ذهنمون میره سمت Backend، Database، Authentication و API.
اما واقعیت اینه که Frontend هم میتونه یکی از مهمترین نقاط ورود حمله باشه.
چند موردی که بهعنوان Frontend Developer باید جدی بگیریم:
- XSS
هر دادهای که از کاربر دریافت میکنیم قابل اعتماد نیست. نحوهی نمایش و پردازش این دادهها میتونه جلوی اجرای کدهای مخرب در Browser رو بگیره یا برعکس، راه رو براش باز کنه.
- Cookie و Session
نحوهی مدیریت Token و Cookie اهمیت زیادی داره. گزینههایی مثل "HttpOnly"، "Secure" و "SameSite" بخشی از همین ماجرا هستن.
- CSRF
وقتی Authentication بر پایه Cookie باشه، باید حواسمون به درخواستهای جعلی و نحوهی محافظت از Endpointها هم باشه.
- Content Security Policy
CSP میتونه محدود کنه که Browser اجازهی اجرای Scriptها و دریافت منابع رو از چه Sourceهایی داشته باشه.
- Dependencyها
هر Package جدیدی که وارد پروژه میکنیم، یک Dependency جدید هم به پروژه اضافه کردهایم. پس بررسی و بهروزرسانی Dependencyها فقط برای مرتب بودن "package.json" نیست؛ بخشی از Security هم هست.
- Validation
اعتبارسنجی Validation در Frontend برای UX عالیه، اما نباید اون رو یک لایه امنیتی در نظر بگیریم.
کاربر میتونه درخواست رو بدون استفاده از UI ما مستقیماً به API ارسال کنه.
پس Validation و Authorization واقعی باید در Backend هم وجود داشته باشن.
- Error Handling
نمایش Stack Trace، اطلاعات Database یا جزئیات داخلی Server به کاربر، میتونه اطلاعات ارزشمندی در اختیار مهاجم قرار بده.
---
در نهایت، Security چیزی نیست که بعد از تمام شدن پروژه بهش فکر کنیم.
از اولین Form، اولین API Call، اولین Cookie و حتی اولین "npm install" داریم درباره امنیت تصمیم میگیریم..
@DevTwitter | <Abolfazl Soltani/>
Post #12891
6.19K
- ❤ 41
- 👍 14
- 🍌 6