Ninja Learn | نینجا لرن
1.27K subscribers
95 photos
36 videos
11 files
306 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
❤‍🔥6
💎 پروتکل امنیتی TLS 💎

احتمالا حداقل یک بار با کلماتی مثل SSL و TLS برخورد داشتید.
این دوتا اصطلاح کلی به امنیت اطلاعات توی وب ربط دارن. حالا بیاید ببینیم TLS چیه، چرا از SSL بهتره، و چطور از اطلاعاتمون محافظت می‌کنه.

حالا TLS چیه؟ 🔍
خب TLS، یا Transport Layer Security، یه پروتکل امنیتی برای ارتباطات توی وب بین سرور و کلاینت هست.
به زبون ساده وقتی تو داری توی یه سایت اطلاعات مهم مثل رمز عبور، شماره کارت بانکی یا هر داده‌ی حساس دیگه‌ای رو وارد می‌کنی، TLS اون‌ها رو رمزنگاری می‌کنه 🔑.

حالا TLS به چه دردی می‌خوره؟ 🤔
خب TLS مثل یه محافظ قوی برای اطلاعاتت عمل می‌کنه 🛡️. فرض کن داری توی یه سایت خرید میکنی 🛒؛ TLS از لحظه‌ای که شماره کارتت رو وارد میکنی تا وقتی که سرور اطلاعات رو دریافت می‌کنه، مثل یه سد محکم عمل می‌کنه و نمی‌ذاره هکرها به اطلاعاتت دسترسی پیدا کنن یا اونا رو تغییر بدن 🚫.
تفاوت TLS با SSL چیه؟ ⚖️
خب، اینجا داستان جالب می‌شه. قبل از TLS، یه پروتکل دیگه به نام SSL (Secure Sockets Layer) وجود داشت که همین وظیفه رو به عهده داشت 🔄. ولی مشکل اینجا بود که SSL به مرور زمان نقاط ضعفش معلوم شد ⚠️. این نقاط ضعف باعث شد هکرها بتونن حملاتی رو ترتیب بدن و اطلاعات رمزنگاری‌شده رو بدزدن یا حتی تغییر بدن.

حمله POODLE و مشکل SSL 🐩
یکی از بزرگ‌ترین مشکلات SSL، حمله‌ای بود به نام POODLE 🐩. POODLE مخفف Padding Oracle On Downgraded Legacy Encryption هست و توی این نوع حمله، هکرها می‌تونستن از نقاط ضعف SSL استفاده کنن و داده‌هایی که فکر می‌کردی امن هستن رو به دست بیارن 🎯. این حمله بیشتر روی نسخه‌های قدیمی SSL مثل SSL 3.0 تأثیر داشت. به‌طور خلاصه، این حمله به هکرها اجازه می‌داد تا بخش‌هایی از ارتباطات رمزنگاری‌شده رو بخونن، و این یعنی امنیت اطلاعاتت به خطر می‌افتاد 🚨.
حالا TLS چطور مشکلات رو حل کرد؟ 🛠️
با بروزرسانی الگوریتم‌های رمزنگاری و تقویت مکانیزم‌های امنیتی، TLS جلوی حملات مثل POODLE رو گرفت . TLS 1.2 و مخصوصاً TLS 1.3، با قابلیت‌های پیشرفته‌تر و امنیت بالاتر، هکرها رو حسابی به دردسر انداخت و بهشون اجازه نمیده به اطلاعات دسترسی پیدا کنن 🔒.
حالاTLS جلوی چه حملاتی رو می‌گیره؟ 🛡️
1⃣ حملات مرد میانی (MITM):
هکرها می‌خوان وسط ارتباط تو و سرور قرار بگیرن و اطلاعاتت رو بدزدن. TLS نمی‌ذاره این اتفاق بیفته .

2⃣ شنود:
هکرها تلاش می‌کنن تا اطلاعاتی که رد و بدل می‌کنی رو شنود کنن. ولی TLS این اطلاعات رو جوری رمزنگاری می‌کنه که شنود بی‌فایده می‌شه 🎧.
3⃣ جعل هویت:
هکرها می‌خوان خودشون رو جای سرور جا بزنن و تو رو گول بزنن. TLS با تأیید هویت قوی‌تر جلوی این کار رو می‌گیره 🚫.

چرا باید از TLS استفاده کنیم؟ 🤷‍♂️
با وجود تمام این حملات و هکرهایی که همیشه دنبال یه فرصت برای دزدیدن اطلاعات هستن 🕵️‍♂️، استفاده از TLS اهمیت خیلی زیادی داره. TLS امنیت اطلاعاتت رو توی وب تضمین می‌کنه و باعث می‌شه با خیال راحت بتونی اطلاعات حساسی مثل رمز عبور، شماره کارت بانکی و پیام‌های شخصی‌ات رو با سرور رد و بدل کنی .

امید وارم براتون مفید بوده باشه :)❤️


#TLS#SSL#امنیت_اینترنتی#رمزنگاری#حملات_سایبری#POODLE


@ninja_learn_ir
🔥10👍51
فردا یه پست خفن راجب یه موضوع خفن واستون داریم که کمتر کسی اینو بلده 😁

ساعت 11:30 منتشر میشه منتظرش باشید 🔥
🔥9👍2👎21
دوستان ۴۰۰ تا شدیم ممنون از همگیتون که همراه ما هستید 😍

یه نکته برای کسایی که تازه به خانواده نینجا لرن پیوستن
حتما پستای قبلی کانال رو بخونید چون
که کلی trick و مفاهیم رو یاد دادیم پس از دستشون ندید و نهایت استفاده رو ببرید😉🫵

@ninja_learn_ir
🎉61
💎 هدر های Accept-Ranges و Range در پرتکل HTTP 💎

فرض کن میخوای یک فیلم با حجم ۲ گیگابایت رو از یک سرویس اشتراک ویدیو دانلود کنی. به جای اینکه کل فیلم رو یکجا دانلود کنی، می‌تونی از این هدر ها استفاده کنی:

1️⃣ ریکوست اولیه:
مرورگرت به سرور سرویس اشتراک ویدیو ریکوست ارسال می‌کنه و در هدر ریکوست، Accept-Ranges: bytes رو قرار می‌ده. این یعنی به سرور می‌گه: "من حاضرم فایل رو تکه‌تکه دریافت کنم."

2️⃣ پاسخ سرور:
سرور هم در پاسخ، مقدار Accept-Ranges: bytes رو تایید می‌کنه و بهت می‌گه که فایل
مورد نظر ۲ گیگابایت حجم داره.

3️⃣ درخواست دانلود تکه اول:
حالا می‌تونی درخواست دانلود تکه اول فیلم رو بدی. برای مثال، می‌تونی با استفاده از Range: bytes=0-1048575 (یعنی از بایت صفر تا بایت ۱۰۰۴۸۵۷۵) درخواست اولین تکه (۱ مگابایت) رو بدی.

4️⃣ دریافت تکه اول و ادامه روند:
سرور تکه اول رو برای تو می‌فرسته. بعد از دریافت این تکه، می‌تونی درخواست دانلود تکه دوم رو بدی و همینطور ادامه بدی تا کل فیلم دانلود بشه.


مزایای این روش:

🚀 سرعت بیشتر: اگه وسط دانلود قطع شد، فقط نیاز داری اون تکه رو دوباره دانلود کنی و بقیه تکه‌ها سالم باقی می‌مونن.

🕹 کنترل بیشتر: می‌تونی انتخاب کنی که کدوم قسمت از فایل رو اول دانلود کنی.

📊استفاده بهینه از پهنای باند: اگه فقط بخشی از یک فایل رو نیاز داری، نیازی نیست کل فایل رو دانلود کنی.


خلاصه:
با استفاده از این هدر ها، دانلود فایل‌های بزرگ خیلی راحت‌تر و سریع‌تر میشه. این تکنولوژی در بسیاری از سرویس‌های دانلود فایل و اشتراک ویدیو استفاده میشه و باعث شده تجربه کاربری بهتری داشته باشیم.

سوالی دارین بپرسین 🌹

@ninja_learn_ir
3😱3🔥2👍1👌1
💎 معرفی node.js 💎


🔬 تاریخچه

تا قبل از سال 2009 اجرای کد های جاوااسکریپت فقط داخل مرورگر ممکن بود.

یعنی برای اینکه یه سری کد جاوااسکریپت رو اجرا کنی باید کد های جاوااسکریپتی رو می‌نوشتی و توی یه فایل html حالا یا به صورت embedded یا به صورت رفرنس با تگ script اجرا میکردی.

دلیلش این بود که همه مرورگر ها داخل خودشون یه قطعه نرم‌افزاری داشتن به اسم "موتور جاوااسکریپت" این موتور جاوااسکریپت وظیفه اجرای کد های جاوااسکریپتی که توسط مرورگر دانلود میشدن رو بر عهده داشت.

هر مرورگری موتور جاوااسکریپت خودشو داره.
گوگل کروم موتور V8 رو داره، فایرفاکس spider monkey و ...


🎉 تولد nodejs

توی سال 2009 برنامه نویس باهوشی به اسم Ryan Dahl به فکرش زد که چقدر خوب میشد که بتونیم کد های جاوااسکریپت رو خارج از مرورگر و روی سرور اجرا کنیم و اومد موتور جاوااسکریپت V8 رو که توسط گوگل به صورت اوپن سورس (open source) منتشر شده بود رو برداشت و توی یه برنامه سی پلاس پلاس (++C) قرار داد و اسم اون برنامه رو گذاشت Node.js.

در واقع نود جی اس یه برنامه ای هست که بهش میگن ران تایم (Runtime) برای اجرای کد جاوااسکریپت خارج از مرورگر و سمت سرور برای توسعه سمت سرور

ران تایم Node.js مثل یه موتور قدرتمنده که برنامه‌های جاوا اسکریپت رو به حرکت درمیاره.

فرض کن یه ماشین مسابقه‌ای داری. ماشین خیلی خفنه اما بدون یه موتور قوی که بهش نیرو بده، نمی‌تونه مسابقه بده.

ران تایم Node.js هم دقیقا همین کارو برای برنامه‌های جاوا اسکریپت می‌کنه.

به زبان خیلی ساده‌تر، ران تایم Node.js یه محیطی رو فراهم می‌کنه که کدهای جاوا اسکریپت توش اجرا بشن.

این کدها می‌تونن هر کاری انجام بدن، از ساختن یه وبسایت ساده تا مدیریت یه شبکه‌ی اجتماعی پیچیده.

چرا Node.js انقدر محبوب شده؟

1⃣ سرعت عمل بالا: Node.js خیلی سریع‌تر از خیلی از زبان‌های برنامه‌نویسی دیگه کارها رو انجام می‌ده.

2⃣ جاوا اسکریپت همه جا هست: اگه جاوا اسکریپت بلد باشی، یادگیری Node.js خیلی راحت‌تره.

3⃣ آسون و سبک: Node.js خیلی سبک و راحته و برای پروژه‌های کوچک و بزرگ قابل استفاده است.

4⃣ جامعه‌ی بزرگ: Node.js یه جامعه‌ی خیلی بزرگ و فعال داره که همیشه آماده‌ی کمک بهت هستن.

پس اگه می‌خوای برنامه‌نویسی بک‌اند رو شروع کنی، Node.js یکی از بهترین گزینه‌هاست. ✔️

حالا اگه سوالی داشتی، حتما بپرس. 😁

@ninja_learn_ir
🔥6👍21😱1
دوتا قسمت دیگه هم از دوره DRF آپلود شد 😁

https://youtu.be/1PNnenZiAxU?si=x3hx9DNA1bCgwixF

@ninja_learn_ir
👍61
Media is too big
VIEW IN TELEGRAM
هرچی بگم از طنز ماجرا کم میشه :)
🤣6😱2
Ninja Learn | نینجا لرن
هرچی بگم از طنز ماجرا کم میشه :)
کی نکتش رو متوجه شد؟ 😂
2😱2😁1
بچه ها میخوام هر روز توی یه پست، خلاصه ای از کتاب REST API Design Rulebook رو واستون بذارم تا با اصول و قائده طراحی api آشنا بشید

نظری چیزی دارید کامنت کنید
همه‌رو میخونم 🌹
15👍4
6
چه ساعتی از روز پست از این کتاب بذارم؟
Final Results
23%
صبح - ساعت 9 الی 11
15%
ظهر - 12 الی 2
23%
عصر - 5 الی 7
38%
شب - 8 به بعد
7👍2
Javad M
چه ساعتی از روز پست از این کتاب بذارم؟
هر روز بین ساعت ۷ و ۸ میذارم نه سیخ بسوزه نه کباب 😁
9🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
سلامتی آزادی سلطان 🍾
🍾41
💎 هدر X-Powered-By 💎

فرض کن یه ماشین خیلی خوشگلی داری. روی این ماشین یه برچسب کوچولو هست که نوشته "ساخت ایران". این برچسب به همه میگه که ماشینت ایرانیه.

هدر X-Powered-By هم دقیقا همین کارو برای وبسایت ها انجام میده. این هدر یه برچسب کوچولوئه که به همه میگه این وبسایت با چه زبان/فریمورکی ساخته شده.

مثلاً ممکنه بنویسه "ساخته شده با وردپرس" یا "ساخته شده با جاوا اسکریپت".


چرا مهمه؟

خب، این برچسب کوچولو یه دردسر کوچولو هم داره!

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


مثال:

فرض کن یه وبسایت فروشگاهی با وردپرس ساخته شده.

یه هکر با دیدن هدر X-Powered-By میفهمه که این وبسایت با وردپرس ساخته شده.

بعدش میره تو اینترنت و دنبال یه راه برای هک کردن وردپرس میگرده. اگه این راه رو پیدا کنه، میتونه وارد وبسایت بشه و اطلاعات کارت های اعتباری مشتری ها رو بدزده.


چه کار کنیم که امنیت وبسایتمون بیشتر بشه؟

1⃣ این هدر رو مخفی کنیم: خیلی از زبان ها و فریمورک هایی که برای ساخت وبسایت استفاده میشن، این امکان رو بهمون میدن که این هدر رو مخفی کنیم. با این کار هکرها نمی تونن بفهمند که وبسایتمون با چه نرم افزاری ساخته شده.

2⃣ زبان/فریمورک مون رو همیشه آپدیت کنیم: هر زبان و فریمورکی ممکنه ایرادهایی داشته باشه. توسعه دهنده ها با آپدیت کردن این ایرادها رو برطرف میکنن. پس اگه زبان و فریمورکمون رو همیشه آپدیت کنیم، هکرها نمیتونن از این ایرادها برای هک کردن وبسایتمون استفاده کنند.

3⃣ از فایروال استفاده کنیم: فایروال مثل یه نگهبان برای وبسایتمون عمل میکنه. فایروال جلوی حملات هکرها رو میگیره و اجازه نمیده که به وبسایتمون آسیب برسونن.

☑️ خلاصه داستان:
هدر X-Powered-By یه برچسب کوچولوئه که به هکرها اطلاعات میده. برای اینکه وبسایتمون امن باشه باید این برچسب رو مخفی کنیم، زبان/فریمورک مون رو آپدیت کنیم و از فایروال استفاده کنیم.

🔴 نکته مهم:
امنیت وبسایت فقط به این هدر ختم نمیشه. خیلی چیزای دیگه هم هست که باید بهشون توجه کرد. مثلاً استفاده از رمزهای عبور قوی، بکاپ گرفتن از اطلاعات وبسایت و...

سوالی دارید بپرسید 🌹
👍82
پست فردا راجب پکیج debug toolbar باشه؟
👍14😁21
#fun


Iran be like 😂

@ninja_learn_ir
🤣102😱2👍1
📕کتاب REST API Design Rulebook

📌 فصل اول: معرفی (Introduction)

📍پارت: اول

#کتاب

💎 سلام به دنیای اینترنت 💎

وب از یه گروه به اسم "داده‌گیری و کنترل" توی سازمان تحقیقاتی اروپا برای فیزیک هسته‌ای (CERN) در ژنو، سوئیس شروع شد.
این ماجرا از وقتی شروع شد که یه برنامه‌نویس کامپیوتر یه ایده هوشمندانه برای یه پروژه نرم‌افزاری جدید به ذهنش رسید.
توی دسامبر ۱۹۹۰، برای اینکه به اشتراک‌گذاری اطلاعات راحت‌تر بشه، "تیم برنرز-لی" یه پروژه غیرانتفاعی رو شروع کرد که اسمش رو "WorldWideWeb" گذاشت.
بعد از حدود یک سال کار مداوم روی پروژه‌اش، برنرز-لی اینا رو اختراع و پیاده‌سازی کرد:
• شناسه منبع یکتا (URI)، یه فرمت که به هر سند وب یه آدرس یکتا میده.
• پروتکل انتقال ابرمتن (HTTP)، یه زبان پیام‌محور که کامپیوترها می‌تونن ازش برای ارتباط توی اینترنت استفاده کنن.
• زبان نشانه‌گذاری ابرمتن (HTML)، برای نمایش اسناد اطلاعاتی که حاوی لینک‌هایی به اسناد مرتبط هستن.
• اولین سرور وب.
• اولین مرورگر وب، که برنرز-لی اسمش رو هم "WorldWideWeb" گذاشت و بعداً به "Nexus" تغییر داد تا با خود وب اشتباه گرفته نشه.
• اولین ویرایشگر HTML به صورت WYSIWYG (یعنی چیزی که می‌بینی همونه که دریافت می‌کنی)، که توی خود مرورگر ساخته شده بود.

در ۶ آگوست ۱۹۹۱، تیم برنرز-لی توی اولین صفحه وب نوشت:
"WorldWideWeb (W3) یه ابتکار برای بازیابی اطلاعات هایپرمیدیا توی یه منطقه وسیع هست که هدفش دسترسی عمومی به یه دنیای بزرگ از اسناد هست."
از همون لحظه، وب شروع به رشد کرد، گاهی به‌صورت تصاعدی. طی پنج سال، تعداد کاربران وب به ۴۰ میلیون نفر رسید. یه زمانی بود که این تعداد هر دو ماه دو برابر می‌شد. همون "دنیای اسناد" که برنرز-لی توصیف کرده بود، واقعاً در حال گسترش بود.

در واقع، وب خیلی سریع و بزرگ شده بود و به سمت فروپاشی می‌رفت. ترافیک وب از ظرفیت زیرساخت اینترنت فراتر می‌رفت. علاوه بر این، پروتکل‌های اصلی وب به طور یکسان پیاده‌سازی نشده بودن و پشتیبانی از کش‌ها و واسطه‌های تثبیت‌کننده نداشتن. با این رشد سریع، مشخص نبود که آیا وب می‌تونه با این تقاضای روزافزون سازگار بشه یا نه.

@ninja_learn_ir
👌9👍32🔥1
💎 ابزار Django debug toolbar 💎
امروز می‌خوایم دربارهٔ یه ابزار فوق‌العاده برای دیباگ کردن توی پروژه‌های جنگویی صحبت کنیم: Django Debug Toolbar. این ابزار می‌تونه بهتون کمک کنه تا جزئیات دقیق درخواست‌ها، کوئری‌های پایگاه داده، قالب‌ها و خیلی چیزای دیگه رو ببینید و مشکلات پروژه‌تون رو سریع‌تر پیدا و برطرف کنید. توی این پست قراره قدم به قدم نحوهٔ نصب و استفاده از این ابزار رو توضیح بدم. 🚀


1. نصب Django Debug Toolbarبرای شروع، باید Django Debug Toolbar رو نصب کنید :
این ابزار به‌راحتی از طریق pip قابل نصب هست. کافیه ترمینال رو باز کنید و این دستور رو وارد کنید: 💻

pip install django-debug-toolbar


با این کار، پکیج مورد نیاز نصب میشه.

2. اضافه کردن به تنظیمات پروژه  :
حالا باید Django Debug Toolbar رو به تنظیمات پروژهٔ جنگوییتون اضافه کنید. برای این کار، فایل settings.py رو باز کنید و این کدرو رو به تنظیمات اضافه کنید: 🛠️

اضافه کردن به INSTALLED_APPS:
INSTALLED_APPS = [
    ...
    'debug_toolbar',
]


اضافه کردن به MIDDLEWARE:

MIDDLEWARE = [
    ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]


با این کار، Django Debug Toolbar به پروژه‌تون اضافه می‌شه و میتونید ازش استفاده کنید. 🎉
3. تنظیم آیپی‌های مجازبرای اینکه این ابزار بتونه توی مرورگر نمایش داده بشه، باید آیپی‌هایی که برای دیباگ تولبار مجاز هستن رو تنظیم کنید. معمولاً برای توسعه توی لوکال از 127.0.0.1 استفاده می‌کنیم. بنابراین، این خط رو به settings.py اضافه کنید: 🌐

INTERNAL_IPS = [
    '127.0.0.1',
]


این تنظیمات به تولبار میگه که فقط وقتی از این آیپی درخواست میاد، نمایش داده بشه. 👀

4. اضافه کردن URLهای مربوطه حالا باید URLهای مربوط به Django Debug Toolbar رو به پروژه‌تون اضافه کنید. برای این کار، فایل urls.py رو باز کنید و این خطوط رو اضافه کنید: 🌍

django.conf import settings
from django.conf.urls import include
from django.urls import path

if settings.DEBUG:
    import debug_toolbar
    urlpatterns = [
        path('__debug__/', include(debug_toolbar.urls)),
    ] + urlpatterns


این کار باعث می‌شه که وقتی پروژه توی حالت DEBUG هست، تولبار فعال بشه و URLهای مربوط به اون هم در دسترس باشن. 🔧

5. استفاده از Django Debug Toolbar حالا دیگه کارمون تمومه! کافیه سرور جنگو رو دوباره راه‌اندازی کنید و یکی از صفحات پروژه‌تون رو باز کنید. اگه همه چیز درست پیش رفته باشه، یه نوار ابزار (Toolbar) در سمت راست صفحه نمایش داده می‌شه.
این نوار ابزار اطلاعات خیلی مفیدی دربارهٔ درخواست HTTP، کوئری‌های پایگاه داده، قالب‌ها، تنظیمات و موارد دیگه بهتون نشون میده.

مثلاً با استفاده از این ابزار می‌تونید ببینید چه کوئری‌هایی به پایگاه داده زده شده، چقدر زمان برده و جای بهینه‌سازی داره یا نه.
همچنین میتونید اطلاعات مربوط به درخواست‌ها و پاسخ‌های HTTP رو به‌دست بیارید و از نحوهٔ پردازش درخواست‌ها در سمت سرور مطلع بشید. 🔍

جمع‌بندی
فهمیدیم Django Debug Toolbar ابزاری قدرتمنده که میتونه خیلی بهتون کمک کنه تا پروژه‌هاتون رو بهینه تر کنید و مشکلات رو سریع‌ تر پیدا کنید.
پیشنهاد میکنم حتماً امتحانش کنید و ببینید چقدر کارتون رو راحت‌تر می‌کنه. 💪

دراینده یه ویدیو هم درمورش ضبط میکنیم

امید وارم براتون مفید بوده باشه :)

@ninja_learn_ir
👍104