چیزیکه تا الان من متوجه شدم خیلی از برنامه نویسای frontend فرق بین کوکی معمولی با HttpOnly یا Secure رو نمیدونن یا کلا فکر می کنن HttpOnly همون Secure cookie هستش...
ببینید زمانیکه شما کوکی رو میسازید میتونید چندتا فلگ براش ست کنید, که 2 تا از اونها HttpOnly و Secure هستش. وقتی شما HttpOnly رو از سمت سرور ست کنید, دیگه با جاوااسکریپت نمیتونید بهش دسترسی داشته باشید. در عوض مرورگر میاد تو هدر ریکوئست هایی که میزنید مقدار کوکی رو میفرسته و کار تمام هستش.
این HttpOnly دقیقا میاد جلوی XSS و سرقت رفتن مقادیری مثل jwt-token رو میگیره.
حالا Secure کوکی یعنی شما باید روی HTTPS این کوکی رو بسازید و به سرور بفرستید و اگر مثلا وب سایت روی HTTP باز بشه کوکی خوانده و ارسال نمیشه!
این رو درنظر داشته باشید که Secure کوکی میتونه با JavaScript ساخته و خوانده بشه ولی HttpOnly فقط روی سرور ساخته میشه. و در آخر اینکه HttpOnly و Secure میتونن هر دو فعال باشن یا یکیشون فعال بشه و با هم تداخل ندارن
حالا بیایم یکم عمیق تر به موضوع نگاه کنیم, اگر خواستیم تو React یا مثلا Angular این مقدار کوکی رو بگیریم و از اتفاق از نوع HttpOnly باشه باید چیکار کنیم؟
تو این شرایط معمولا تیم بک اند یک سرویس مخصوص Auth به شما میده که بهش ریکوئست میزنی ببینی کاربر Authenticated هستش و میتونه Protected Route و Component هارو ببینه یا نه؟ اینجوری میشه امنیت رو هم باهاش هندل کرد
@DevTwitter | <Mohammad E/>
Post #13469
2.39K

- 👍 37
- 🍌 5
- 👎 1