Forwarded from Ninja Learn | نینجا لرن
💎 هدر Authentication چیه و چطوری ازش استفاده کنیم؟ 💎
امروز میخوایم درباره هدر Authentication صحبت کنیم، چیزی که اپلیکیشنهای وب برای احراز هویت (Authentication) استفاده میکنن و توی دنیای APIها خیلی کاربرد داره 😎.
هدر Authentication چیه؟ 🤔
هدر Authentication یه هدر HTTP هست که اطلاعات لازم برای احراز هویت کاربر رو توی درخواستها به سرور میفرسته. این هدر کمک میکنه که سرور بفهمه چه کسی داره درخواست رو میفرسته و اینکه اجازه دسترسی به منابع مختلف رو داره یا نه 🔐.
انواع هدر Authentication 🛡️
Basic Authentication 🔑
این سادهترین نوع Authentication هستش. توی این روش، نام کاربری و پسورد بهصورت base64 رمزگذاری میشن و بعد توی هدر قرار میگیرن. نمونهای از هدرش این شکلیه:
ولی چون اطلاعات رو بهصورت ساده (حتی با وجود base64) میفرسته، خیلی امن نیست و معمولاً توی HTTPS ازش استفاده میکنن.
Bearer Token 🏷️
توی این روش، از یه توکن (Token) بهجای نام کاربری و پسورد استفاده میکنن. این توکن معمولاً وقتی کاربر لاگین میکنه، از سرور میگیره و بعد توی درخواستها بهعنوان هدر ارسال میشه. هدرش این شکلیه:
این روش خیلی امنتر و محبوبتره، مخصوصاً توی APIهای مدرن و استفاده از JWT (JSON Web Tokens).
OAuth 2.0 🔑
این روش بیشتر برای احراز حویت با استفاده از سرویسهای بزرگی مثل گوگل و فیسبوک استفاده میشه. توی این مدل، شما یه Access Token از طرف سرویسدهنده میگیرید و بعد اون رو توی هدر میفرستید. خیلی شبیه به Bearer Token:
چطوری از هدر Authentication استفاده کنیم؟ 💻
فرض کن یه API داری که برای دسترسی به یه سری اطلاعات حساس نیاز به احراز هویت داره. برای اینکه کاربر بتونه به این اطلاعات دسترسی داشته باشه، باید توی درخواستش هدر Authentication رو بهدرستی تنظیم کنه.
مثلاً برای ارسال یه درخواست به API با استفاده از Bearer Token:
چرا هدر Authentication مهمه؟ 🛠️
1⃣ امنیت اطلاعات:
این هدر به سرور کمک میکنه مطمئن بشه که درخواست از یه کاربر معتبر ارسال شده.
2⃣ مدیریت دسترسی:
با استفاده از این هدر، میتونی سطح دسترسیهای مختلف رو برای کاربرها تنظیم کنی. مثلاً بعضی کاربران فقط به بخشهایی از اپلیکیشن دسترسی داشته باشن.
3⃣ یکپارچگی با API:
خیلی از APIها مثل REST و GraphQL نیاز دارن که کاربر با ارسال هدر Authentication خودش رو احراز هویت کنه.
جمعبندی 🎯
فهمیدیم هدر Authentication یکی از پرکاربردترین ابزارها برای احراز هویت توی وب و APIهاست. روشهای مختلفی برای استفاده ازش وجود داره، مثل Basic، Bearer Token و OAuth که بسته به نیازت میتونی از هرکدومشون استفاده کنی.
امید وارم مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم درباره هدر Authentication صحبت کنیم، چیزی که اپلیکیشنهای وب برای احراز هویت (Authentication) استفاده میکنن و توی دنیای APIها خیلی کاربرد داره 😎.
هدر Authentication چیه؟ 🤔
هدر Authentication یه هدر HTTP هست که اطلاعات لازم برای احراز هویت کاربر رو توی درخواستها به سرور میفرسته. این هدر کمک میکنه که سرور بفهمه چه کسی داره درخواست رو میفرسته و اینکه اجازه دسترسی به منابع مختلف رو داره یا نه 🔐.
انواع هدر Authentication 🛡️
Basic Authentication 🔑
این سادهترین نوع Authentication هستش. توی این روش، نام کاربری و پسورد بهصورت base64 رمزگذاری میشن و بعد توی هدر قرار میگیرن. نمونهای از هدرش این شکلیه:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
ولی چون اطلاعات رو بهصورت ساده (حتی با وجود base64) میفرسته، خیلی امن نیست و معمولاً توی HTTPS ازش استفاده میکنن.
Bearer Token 🏷️
توی این روش، از یه توکن (Token) بهجای نام کاربری و پسورد استفاده میکنن. این توکن معمولاً وقتی کاربر لاگین میکنه، از سرور میگیره و بعد توی درخواستها بهعنوان هدر ارسال میشه. هدرش این شکلیه:
Authorization: Bearer your-token-here
این روش خیلی امنتر و محبوبتره، مخصوصاً توی APIهای مدرن و استفاده از JWT (JSON Web Tokens).
OAuth 2.0 🔑
این روش بیشتر برای احراز حویت با استفاده از سرویسهای بزرگی مثل گوگل و فیسبوک استفاده میشه. توی این مدل، شما یه Access Token از طرف سرویسدهنده میگیرید و بعد اون رو توی هدر میفرستید. خیلی شبیه به Bearer Token:
Authorization: Bearer access-token
چطوری از هدر Authentication استفاده کنیم؟ 💻
فرض کن یه API داری که برای دسترسی به یه سری اطلاعات حساس نیاز به احراز هویت داره. برای اینکه کاربر بتونه به این اطلاعات دسترسی داشته باشه، باید توی درخواستش هدر Authentication رو بهدرستی تنظیم کنه.
مثلاً برای ارسال یه درخواست به API با استفاده از Bearer Token:
curl -H "Authorization: Bearer your-token-here" https://api.example.com/data
چرا هدر Authentication مهمه؟ 🛠️
1⃣ امنیت اطلاعات:
این هدر به سرور کمک میکنه مطمئن بشه که درخواست از یه کاربر معتبر ارسال شده.
2⃣ مدیریت دسترسی:
با استفاده از این هدر، میتونی سطح دسترسیهای مختلف رو برای کاربرها تنظیم کنی. مثلاً بعضی کاربران فقط به بخشهایی از اپلیکیشن دسترسی داشته باشن.
3⃣ یکپارچگی با API:
خیلی از APIها مثل REST و GraphQL نیاز دارن که کاربر با ارسال هدر Authentication خودش رو احراز هویت کنه.
جمعبندی 🎯
فهمیدیم هدر Authentication یکی از پرکاربردترین ابزارها برای احراز هویت توی وب و APIهاست. روشهای مختلفی برای استفاده ازش وجود داره، مثل Basic، Bearer Token و OAuth که بسته به نیازت میتونی از هرکدومشون استفاده کنی.
#authentication #headers #security
Forwarded from Web Application Security
Authentication & Authorization =
پروتکل HTTP یک پروتکل stateless هست. اگه شخصی دوبار پشت سرهم به وب سرور درخواست بفرسته، HTTP متوجه نمیشه که این کاربر همون کاربر قبلیه که درخواست فرستاده بود یعنی وضعیت کاربر رو نگه نمیداره. واسه حل این مشکل پروتکل باید وضعیت کاربر رو جایی ذخیره کنیم(باید یک شناسه از کاربر رو نگه داریم). یکی از اولین ویژگی ها و مکانیزمی که واسه این کار به وجود اومد session بود. برنامه نویس بعد از login برای کاربر یک session سمت سرور ست میکرد که بتونه کاربر رو بشناسه و Authentication و Authorization رو میتونست هندل کنه. session سمت سرور معمولا داخل یک فایل ذخیره میشه و بعد بسته شدن مرورگر کاربر از بین میره.
❓حالا Authentication و Authorization چین؟ Authentication مشخص میکنه من کیم و ما تو این مرحله باید ثابت کنیم که چه کسی هستیم. Authorization بعد از مرحله Authentication میاد و مشخص میکنه کاربر به چه چیز هایی دسترسی داره(سطح دسترسی های مختلفی تو یک web application وجود داره، هر کاربر فقط باید بتونه اطلاعات خودش رو ویرایش کنه و ببینه و همچنین کاربر معمولی نباید به فایل های ادمین سایت دسترسی داشته باشه)
❓کوکی یا cookie چیه؟
بخاطر مشکلی که session داشت و بعد بستن مرورگر از بین میرفت، cookie رو ساختن. Cookie تو مرورگر کاربر ذخیره میشه و طول عمرش دست برنامه نویسه و به خاطر همین کاربر میتونه مدت زمان بیشتری لاگین باشه. Session ID که سمت سرور بود رو به صورت encrypt داخل cookie قرار میدن که کاربر نتونه دست کاریش کنه. به ازای هر درخواستی که کاربر میفرسته سمت سرور، مرورگر به صورت خودکار cookie رو هم واسه اون دامنه میفرسته.
❓ انواع روش های Authentication:
1⃣ Basic Authentication
2⃣ Dijest Authentication
3⃣ Form base Authentication
4⃣ Certificate Authentication
5⃣ Integrated Windows Authentication
6⃣ Token base Authentication(JWT in header)
7⃣ OAuth
8⃣ SSO
هر کدوم از روش های Authentication محدودیت ها و آسیب پذیری های مربوط به خودش رو داره. برای مثال :
- تو token base Authentication آسیب پذیری هایی مثل csrf و cors misconfiguration و cache deception به وجود نمیاد.
- وقتی اطلاعات تو cookie یا localstorage ذخیره میشه با xss میشه اطلاعات رو خوند ولی اگه تو header باشه با xss نمیتونیم بخونیمش.
- روش Basic Authentication آسیب پذیره به MITM.
- تو OAuth یک آسیب پذیری نسبتا بی ارزش مثل open redirect میتونه منجر به Account Takeover بشه.
- روش Integrated Windows Authentication مختص شبکه های مایکروسافتیه.
- روش های certificate Authentication و Integrated Windows Authentication رو تو شبکه های داخلی معمولا استفاده میکنن.
- اگه private key تو certificate Authentication لو بره منجر به mitm میشه.
- وقتی از session استفاده بشه کاربر نمیتونه دست کاریش کنه بر خلاف سایر موارد که سمت کاربر ذخیره میشه(برنامه نویس باید با encryption جلوی تغییر cookie/jwt و.... رو بگیره).
- تو form base Authentication اگه مواردی مثل Error handling رو انجام ندیم ممکنه آسیب پذیری username enumeration به وجود بیاد.
#Authentication
پروتکل HTTP یک پروتکل stateless هست. اگه شخصی دوبار پشت سرهم به وب سرور درخواست بفرسته، HTTP متوجه نمیشه که این کاربر همون کاربر قبلیه که درخواست فرستاده بود یعنی وضعیت کاربر رو نگه نمیداره. واسه حل این مشکل پروتکل باید وضعیت کاربر رو جایی ذخیره کنیم(باید یک شناسه از کاربر رو نگه داریم). یکی از اولین ویژگی ها و مکانیزمی که واسه این کار به وجود اومد session بود. برنامه نویس بعد از login برای کاربر یک session سمت سرور ست میکرد که بتونه کاربر رو بشناسه و Authentication و Authorization رو میتونست هندل کنه. session سمت سرور معمولا داخل یک فایل ذخیره میشه و بعد بسته شدن مرورگر کاربر از بین میره.
❓حالا Authentication و Authorization چین؟ Authentication مشخص میکنه من کیم و ما تو این مرحله باید ثابت کنیم که چه کسی هستیم. Authorization بعد از مرحله Authentication میاد و مشخص میکنه کاربر به چه چیز هایی دسترسی داره(سطح دسترسی های مختلفی تو یک web application وجود داره، هر کاربر فقط باید بتونه اطلاعات خودش رو ویرایش کنه و ببینه و همچنین کاربر معمولی نباید به فایل های ادمین سایت دسترسی داشته باشه)
❓کوکی یا cookie چیه؟
بخاطر مشکلی که session داشت و بعد بستن مرورگر از بین میرفت، cookie رو ساختن. Cookie تو مرورگر کاربر ذخیره میشه و طول عمرش دست برنامه نویسه و به خاطر همین کاربر میتونه مدت زمان بیشتری لاگین باشه. Session ID که سمت سرور بود رو به صورت encrypt داخل cookie قرار میدن که کاربر نتونه دست کاریش کنه. به ازای هر درخواستی که کاربر میفرسته سمت سرور، مرورگر به صورت خودکار cookie رو هم واسه اون دامنه میفرسته.
❓ انواع روش های Authentication:
1⃣ Basic Authentication
2⃣ Dijest Authentication
3⃣ Form base Authentication
4⃣ Certificate Authentication
5⃣ Integrated Windows Authentication
6⃣ Token base Authentication(JWT in header)
7⃣ OAuth
8⃣ SSO
هر کدوم از روش های Authentication محدودیت ها و آسیب پذیری های مربوط به خودش رو داره. برای مثال :
- وقتی اطلاعات تو cookie یا localstorage ذخیره میشه با xss میشه اطلاعات رو خوند ولی اگه تو header باشه با xss نمیتونیم بخونیمش.
- روش Basic
- تو OAuth یک آسیب پذیری نسبتا بی ارزش مثل open redirect میتونه منجر به Account Takeover بشه.
- روش Integrated Windows
- روش های certificate
- اگه private key تو certificate
- وقتی از session استفاده بشه کاربر نمیتونه دست کاریش کنه بر خلاف سایر موارد که سمت کاربر ذخیره میشه(برنامه نویس باید با encryption جلوی تغییر cookie/jwt و.... رو بگیره).
- تو form base
#Authentication
Forwarded from Ninja Learn | نینجا لرن
از اونجایی که بعضی هاتون ممکنه متوجه نشده باشید که چه اتفاقی داره میوفته
پیشنهاد میکنم ویدیو دوست خوبم سیروان جان رو حتما ببینید
مشاهده ویدیو
➖➖➖➖➖➖➖➖➖
پیشنهاد میکنم ویدیو دوست خوبم سیروان جان رو حتما ببینید
مشاهده ویدیو
➖➖➖➖➖➖➖➖➖
🔆 CHANNEL | GROUP
Linkedin
#jwt #http #authentication #رمزنگاری | Sirwan Geramipour | 55 comments
🔐 توکن های jwt چی هستن و چطور برای احراز هویت استفاده میشن؟ این موضوع ویدیوی هشتم از سری ویدیوهای رمزنگاری به زبان ساده اس.
🔑 توی این ویدیو یاد میگیریم که… | 55 comments on LinkedIn
🔑 توی این ویدیو یاد میگیریم که… | 55 comments on LinkedIn
Forwarded from Code Module | کد ماژول (Mahan-Heydari)
Clerk، ابزاری کارآمد و ساده برای احراز هویت 😎
Clerk یک پلتفرم فوقالعادهست که تمام پیچیدگیهای مربوط به احراز هویت و مدیریت کاربران رو براتون هندل میکنه و دیگه نیازی نیست درگیر ساخت فرمهای پیچیده، مدیریت توکنها، احراز هویت دو مرحلهای و... باشید.
⚡️ سادگی و با چند خط کد، یه سیستم احراز هویت امن و مدرن رو به اپلیکیشنتون اضافه کنید.
‼️ چرا Clerk برای برنامهنویسها عالیه؟
✅ سرعت و سهولت یکپارچهسازی: با کتابخانههای آماده برای فریمورکها و زبانهای برنامهنویسی محبوب، خیلی سریع میتونید Clerk رو به پروژتون اضافه کنید.
✅ امنیت بالا: دیگه نگران آسیبپذیریهای امنیتی مربوط به احراز هویت نباشید. با رعایت بهروزترین استانداردهای امنیتی، خیالتون رو راحت میکنه.
✅ رابط کاربری قابل کاستومایز : ظاهر صفحات ورود و ثبتنام رو مطابق با برند و طراحی اپلیکیشنتون شخصیسازی کنید.
✅ پشتیبانی از روشهای مختلف احراز هویت: ورود با ایمیل، شماره تلفن، حسابهای شبکههای اجتماعی و...
✅ مدیریت آسان کاربران: داشبورد کاربری ساده و قدرتمند برای مدیریت کاربران و تنظیمات مربوط به اونها.
✅ صرفهجویی در زمان و هزینه: با استفاده از Clerk دیگه نیازی به صرف زمان و منابع برای توسعه و نگهداری سیستم احراز هویت اختصاصی ندارید.
اگر به دنبال یک راهحل حرفهای و کارآمد برای مدیریت احراز هویت کاربران میگردید، Clerk قطعاً گزینه خوبی هست، برای یادگیری این ابزار میتونید به داکیومنتش مراجعه کنید.
Document🌕
#authentication #clerk
@CodeModule
Clerk یک پلتفرم فوقالعادهست که تمام پیچیدگیهای مربوط به احراز هویت و مدیریت کاربران رو براتون هندل میکنه و دیگه نیازی نیست درگیر ساخت فرمهای پیچیده، مدیریت توکنها، احراز هویت دو مرحلهای و... باشید.
اگر به دنبال یک راهحل حرفهای و کارآمد برای مدیریت احراز هویت کاربران میگردید، Clerk قطعاً گزینه خوبی هست، برای یادگیری این ابزار میتونید به داکیومنتش مراجعه کنید.
Document
#authentication #clerk
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
JWT Authentication in Go with Gin
🟢 خلاصه مقاله:
این مقاله با رویکردی عملی نشان میدهد چگونه احراز هویت مبتنی بر JWT را در یک سرویس Go با فریمورک Gin پیادهسازی کنیم؛ هدف نمونه، کار با Vonage است اما الگوها در هر پروژه APIمحور قابل استفادهاند. نویسنده، Benjamin Aronov (Vonage)، ابتدا مزایای JWT و مفاهیم ادعاها، الگوریتمهای امضا و تفکیک توکنهای دسترسی و نوسازی را توضیح میدهد. سپس ساختار پیادهسازی را تشریح میکند: صدور توکن امن پس از تأیید اعتبار، میانافزار Gin برای اعتبارسنجی و تزریق کانتکست کاربر، محافظت از مسیرها، مدیریت خطاها و نگهداری کلیدها در متغیرهای محیطی. بخش امنیت بر انقضای کوتاه توکن دسترسی، چرخش Refresh Token، جلوگیری از سوءاستفاده، استفاده از HTTPS، ملاحظات CORS و محدودسازی نرخ و نیز لاگگذاری و چرخش کلیدها در محیط تولید تأکید دارد. در نهایت نشان میدهد چگونه با توکنهای کوتاهعمر و محدود به سطح دسترسی، تعاملات با Vonage (مانند پیام، صوت یا ویدئو) را ایمن کنیم. نتیجه، لایه احراز هویت منعطفی در Go و Gin است که فراتر از Vonage هم قابل استفاده است.
#Go #Gin #JWT #Authentication #Security #Golang #API #Vonage
🟣لینک مقاله:
https://golangweekly.com/link/175981/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
JWT Authentication in Go with Gin
🟢 خلاصه مقاله:
این مقاله با رویکردی عملی نشان میدهد چگونه احراز هویت مبتنی بر JWT را در یک سرویس Go با فریمورک Gin پیادهسازی کنیم؛ هدف نمونه، کار با Vonage است اما الگوها در هر پروژه APIمحور قابل استفادهاند. نویسنده، Benjamin Aronov (Vonage)، ابتدا مزایای JWT و مفاهیم ادعاها، الگوریتمهای امضا و تفکیک توکنهای دسترسی و نوسازی را توضیح میدهد. سپس ساختار پیادهسازی را تشریح میکند: صدور توکن امن پس از تأیید اعتبار، میانافزار Gin برای اعتبارسنجی و تزریق کانتکست کاربر، محافظت از مسیرها، مدیریت خطاها و نگهداری کلیدها در متغیرهای محیطی. بخش امنیت بر انقضای کوتاه توکن دسترسی، چرخش Refresh Token، جلوگیری از سوءاستفاده، استفاده از HTTPS، ملاحظات CORS و محدودسازی نرخ و نیز لاگگذاری و چرخش کلیدها در محیط تولید تأکید دارد. در نهایت نشان میدهد چگونه با توکنهای کوتاهعمر و محدود به سطح دسترسی، تعاملات با Vonage (مانند پیام، صوت یا ویدئو) را ایمن کنیم. نتیجه، لایه احراز هویت منعطفی در Go و Gin است که فراتر از Vonage هم قابل استفاده است.
#Go #Gin #JWT #Authentication #Security #Golang #API #Vonage
🟣لینک مقاله:
https://golangweekly.com/link/175981/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Vonage API Developer
JWT Authentication in Go with Gin
Secure JWT auth in Go with Gin: access/refresh tokens, HttpOnly cookies, Redis, and Vonage API.