✅ یه ویدئوی حدودا 20 دقیقه ای که میتونید باهاش کاربرد Faker و facotry_boy رو درک کنید
البته یه Django Command هم میسازه که اونم بد نیست یاد بگیریم. یه پکیج به اسم halo هم معرفی میکنه. اونم باحاله
یکم انگلیسی حرف زدنش رو مخه. اما کلا مفهومه
آپدیت: به عنوانش که گفته react و... کاری نداشته باشید این قسمتش فقط Faker و facotry_boy و... هست
https://www.youtube.com/watch?v=WWowP_8bMR4
البته یه Django Command هم میسازه که اونم بد نیست یاد بگیریم. یه پکیج به اسم halo هم معرفی میکنه. اونم باحاله
یکم انگلیسی حرف زدنش رو مخه. اما کلا مفهومه
آپدیت: به عنوانش که گفته react و... کاری نداشته باشید این قسمتش فقط Faker و facotry_boy و... هست
https://www.youtube.com/watch?v=WWowP_8bMR4
YouTube
08 - Create a custom Django command to populate the DB with factory boy and faker
A full-stack series about Django, Django-rest-framework, react, redux/toolkit, and typescript
The Django-react playlist (this playlist):
https://youtube.com/playlist?list=PLM0LBHjz37LU_XA4TX_H0chJ1OgEOHpJ3
repo [code]:
https://github.com/Rowadz/django-react…
The Django-react playlist (this playlist):
https://youtube.com/playlist?list=PLM0LBHjz37LU_XA4TX_H0chJ1OgEOHpJ3
repo [code]:
https://github.com/Rowadz/django-react…
👍6
🧐 آیا هات داگ ساندویچه؟
توی این مطلب در مورد فیلد های ManyToMany در جنگو خیلی روان توضیح داده شده
✔️ در مورد through هم توضیح داده که توصیه میکنم حتما این through رو بخونید
https://www.sankalpjonna.com/learn-django/the-right-way-to-use-a-manytomanyfield-in-django
توی این مطلب در مورد فیلد های ManyToMany در جنگو خیلی روان توضیح داده شده
✔️ در مورد through هم توضیح داده که توصیه میکنم حتما این through رو بخونید
https://www.sankalpjonna.com/learn-django/the-right-way-to-use-a-manytomanyfield-in-django
Sankalpjonna
The right way to use a ManyToManyField in Django
A detailed explanation of how a many-to-many relationship works in Django and all the caveats associated with using the ManyToManyField
❤4👍1
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و سوم - لاگین با استفاده از متد GET
توی این ویدئو اول از همه. تغییراتی که ابوذر داده بود رو اعمال کردیم. بعدش با دیباگ و breakpoint آشنا شدیم و باهاش تونستیم کدمون رو دیباگ کنیم. با استفاده از متد GET اطلاعات ارسالی از فرم رو توی view مون نمایش دادیم و با استفاده از متد authenticate و متد login تونستیم توی جنگو لاگین کنیم. بعد از لاگین هم با متد redirect به صفحه ادمین رفتیم.
لینک آپارات:
https://aparat.com/v/M2kTr
لینک یوتیوب:
https://youtu.be/NopA_0axBFI
توی این ویدئو اول از همه. تغییراتی که ابوذر داده بود رو اعمال کردیم. بعدش با دیباگ و breakpoint آشنا شدیم و باهاش تونستیم کدمون رو دیباگ کنیم. با استفاده از متد GET اطلاعات ارسالی از فرم رو توی view مون نمایش دادیم و با استفاده از متد authenticate و متد login تونستیم توی جنگو لاگین کنیم. بعد از لاگین هم با متد redirect به صفحه ادمین رفتیم.
لینک آپارات:
https://aparat.com/v/M2kTr
لینک یوتیوب:
https://youtu.be/NopA_0axBFI
👍5
✅ در هر متد تست فقط یک assertion باید انجام داد...!
توی کتاب Art of Unit Testing صراحتا جمله بالا رو تاکید کرده.
اما همونطوری که می بینید خودش یه جایی این اصل رو نقض کرده 🧐 (کد سی شارپه. ولی توی این موضوع زبان مهم نیست)
البته توی چند خط پایین تر توضیح داده که چه مواقعی میشه چندتا assert توی یه تست داشته باشیم.
✔️ به صورت کلی هر تست باید یک رفتار (behavior) رو بررسی کنه و اگه یه رفتار داریم، ولی نیاز به چندتا assert باشه، مجازه.
توضیحات تکمیلی رو توی مطلب زیر میتونید ببینید (منابع جالبی رو هم معرفی کرده)
https://pierodibello.medium.com/one-assertion-per-test-732cc2a7d3d
توی کتاب Art of Unit Testing صراحتا جمله بالا رو تاکید کرده.
اما همونطوری که می بینید خودش یه جایی این اصل رو نقض کرده 🧐 (کد سی شارپه. ولی توی این موضوع زبان مهم نیست)
البته توی چند خط پایین تر توضیح داده که چه مواقعی میشه چندتا assert توی یه تست داشته باشیم.
✔️ به صورت کلی هر تست باید یک رفتار (behavior) رو بررسی کنه و اگه یه رفتار داریم، ولی نیاز به چندتا assert باشه، مجازه.
توضیحات تکمیلی رو توی مطلب زیر میتونید ببینید (منابع جالبی رو هم معرفی کرده)
https://pierodibello.medium.com/one-assertion-per-test-732cc2a7d3d
👍5
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و چهارم - لاگین با استفاده از متد POST
در این ویدئو ابتدا یکم در مورد CSRF و middleware های جنگو توضیح میدم. بعدش میریم و چندتا عکس توی گوگل در مورد این attack می بینیم. و در حین این توضیحات یکم با cookie ها آشنا میشیم. و بالاخره با csrf_token جنگو و نحوه کارکردش آشنا میشیم و با فرمی که داریم لاگین می کنیم. این ویدئو به مشکل عجیبی خوردیم که باعث شد حدودا ۲۲ دقیقه بشه :)
لینک آپارات:
https://aparat.com/v/hsbai
لینک یوتیوب:
https://youtu.be/JOZpNeLZJ4E
در این ویدئو ابتدا یکم در مورد CSRF و middleware های جنگو توضیح میدم. بعدش میریم و چندتا عکس توی گوگل در مورد این attack می بینیم. و در حین این توضیحات یکم با cookie ها آشنا میشیم. و بالاخره با csrf_token جنگو و نحوه کارکردش آشنا میشیم و با فرمی که داریم لاگین می کنیم. این ویدئو به مشکل عجیبی خوردیم که باعث شد حدودا ۲۲ دقیقه بشه :)
لینک آپارات:
https://aparat.com/v/hsbai
لینک یوتیوب:
https://youtu.be/JOZpNeLZJ4E
👍3
✅ قطعا تا حالا توی فیلدهای مدل تون از choices استفاده کردید. مثلا برای مشخص کردن (مرد/زن)
توی عکس شماره 1 حالت عادی این روش هست
و عکس شماره 2 همین کارو با ارث بری از TextChoices پیاده سازی کرده.
لینک زیر در این مورد بیشتر توضیح داده:
https://adamj.eu/tech/2020/01/27/moving-to-django-3-field-choices-enumeration-types/
توی عکس شماره 1 حالت عادی این روش هست
و عکس شماره 2 همین کارو با ارث بری از TextChoices پیاده سازی کرده.
لینک زیر در این مورد بیشتر توضیح داده:
https://adamj.eu/tech/2020/01/27/moving-to-django-3-field-choices-enumeration-types/
👍12
✅ دیتاکلاس در پایتون چیه؟ و چه استفاده ای توی جنگو میتونه داشته باشه؟!!!
✔️ با استفاده از dataclass پایتون که در نسخه 3.7 معرفی شد میتوانید بخش بزرگی از ساخت کلاس را به پایتون بسپارید (کلاس هایی که پیچیدگی نداشته باشن و از تکرار کدها جلوگیری کنیم).
لینک های زیر از مونگارد و یکی هم از ویرگول در مورد دیتاکلاس ها توضیح دادن:
https://www.mongard.ir/one_part/160/python-dataclass/
https://vrgl.ir/CGI7W
✔️ و داکیومنت DRF یه پکیج معرفی کرده که با این dataclass می تونیم کدهای تکراری کمتری برای سریالایزر هامون بنویسیم
https://github.com/oxan/djangorestframework-dataclasses
✔️ با استفاده از dataclass پایتون که در نسخه 3.7 معرفی شد میتوانید بخش بزرگی از ساخت کلاس را به پایتون بسپارید (کلاس هایی که پیچیدگی نداشته باشن و از تکرار کدها جلوگیری کنیم).
لینک های زیر از مونگارد و یکی هم از ویرگول در مورد دیتاکلاس ها توضیح دادن:
https://www.mongard.ir/one_part/160/python-dataclass/
https://vrgl.ir/CGI7W
✔️ و داکیومنت DRF یه پکیج معرفی کرده که با این dataclass می تونیم کدهای تکراری کمتری برای سریالایزر هامون بنویسیم
https://github.com/oxan/djangorestframework-dataclasses
👍8
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و پنجم - ارث بری از Form جنگو
توی این ویدئو با ولیدیشن های client side آشنا شدیم. بعدش رفتیم سراغ فرم ها در جنگو و با ارث بری از کلاس Form یک فرم جنگو ایجاد کردیم. در ادامه با متد is_valid آشنا شدیم و با breakpoint کد رو trace کردیم. در انتهای آموزش یکم با مزیت های فرم های جنگو آشنا شدیم و قرار شد جلسه بعدی استایل فرم جنگو رو درست کنیم.
لینک آپارات:
https://www.aparat.com/v/T6yVo
لینک یوتیوب:
https://youtu.be/pDrCMRWs1gQ
توی این ویدئو با ولیدیشن های client side آشنا شدیم. بعدش رفتیم سراغ فرم ها در جنگو و با ارث بری از کلاس Form یک فرم جنگو ایجاد کردیم. در ادامه با متد is_valid آشنا شدیم و با breakpoint کد رو trace کردیم. در انتهای آموزش یکم با مزیت های فرم های جنگو آشنا شدیم و قرار شد جلسه بعدی استایل فرم جنگو رو درست کنیم.
لینک آپارات:
https://www.aparat.com/v/T6yVo
لینک یوتیوب:
https://youtu.be/pDrCMRWs1gQ
❤4👍2
✅ یه کانال خوب برای یادگیری پایتون - جنگو و خیلی چیزای دیگه توی همین حوزه
استادش دکتر رحیمی هستن. کانال تازه راه افتاده و همین اولش هم مثال های خوبی ارائه کرده.
🌹🌹مدرسه برنامه نویسی🌺🌺
دوستان خود را به کانال ما دعوت کنید تا از آموزش های رایگان "مدرسه برنامه نویسی" استفاده کنند.
کانال تلگرام:
t.iss.one/programmingschool2
وب سایت آموزشی:
https://programmingschool.ir
استادش دکتر رحیمی هستن. کانال تازه راه افتاده و همین اولش هم مثال های خوبی ارائه کرده.
🌹🌹مدرسه برنامه نویسی🌺🌺
دوستان خود را به کانال ما دعوت کنید تا از آموزش های رایگان "مدرسه برنامه نویسی" استفاده کنند.
کانال تلگرام:
t.iss.one/programmingschool2
وب سایت آموزشی:
https://programmingschool.ir
❤4
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و ششم - استایل دهی به فرم جنگو
در ابتدای این ویدئو با ویجت های جنگو و PasswordInput آشنا شدیم. بعدش رفتیم سراغ کاستوم کردن ظاهر فرم های جنگو با راهنمایی گرفتم از داکیومنت Django. در ادامه آموزش یاد گرفتیم که چطور attr به widget ها اضافه کنیم و با این روش class برای input ها اضافه کردیم تا استایل دهی انجام بشه. همچنین یاد گرفتیم توی جنگو چطور کدهای html رو کامنت کنیم. در خلال آموزش با مفهوم context هم آشنا شدیم و در ادامه هم با حلقه for در template های جنگو کار کردیم. در انتهای ویدئو هم ایراد کدهامون رو پیدا کردیم و تونستیم خطاهای فرم رو نمایش بدیم. برای نمایش خطاهای فرم از novalidate در فرم ها استفاده کردیم.
لینک آپارات:
https://www.aparat.com/v/Jzne6
لینک یوتیوب:
https://youtu.be/zCS0Exuby0c
در ابتدای این ویدئو با ویجت های جنگو و PasswordInput آشنا شدیم. بعدش رفتیم سراغ کاستوم کردن ظاهر فرم های جنگو با راهنمایی گرفتم از داکیومنت Django. در ادامه آموزش یاد گرفتیم که چطور attr به widget ها اضافه کنیم و با این روش class برای input ها اضافه کردیم تا استایل دهی انجام بشه. همچنین یاد گرفتیم توی جنگو چطور کدهای html رو کامنت کنیم. در خلال آموزش با مفهوم context هم آشنا شدیم و در ادامه هم با حلقه for در template های جنگو کار کردیم. در انتهای ویدئو هم ایراد کدهامون رو پیدا کردیم و تونستیم خطاهای فرم رو نمایش بدیم. برای نمایش خطاهای فرم از novalidate در فرم ها استفاده کردیم.
لینک آپارات:
https://www.aparat.com/v/Jzne6
لینک یوتیوب:
https://youtu.be/zCS0Exuby0c
👍5
Forwarded from TorhamDev | تورهام 😳
https://youtu.be/bKboIvNb_fY
دوستان اولین قسمت دوره آموزش مقدماتی DRF یا همون Django rest framework منتشر شد 🤩.
تو این دوره شما از صفر تا ۷۰ درصد DRF رو یاد خواهید گرفت بعد از این دوره میتونید هر برنامه ای که میخایید به صورت API و با استفاده از DRF توسعه بدید.
تو این دوره سعی میکنم علاوه بر یادگیری خود DRF با مفاهیم محیط کار و ابزار هاش هم آشنا بشید، مثل لینوکس، postman و ....
امیدوارم از این دوره چیزها مفید و باحالی یاد بگیرید❤️🫵
با معرفی دوره به دوستانتون باعث حمایت و در نتیجه دوره و آموزش ها بیشتر بشید🥹❤️🔥
مرسی از @AlirezaWDX برای تامبنیل ویدیو ❤️🔥🫵
💬 join -> @TorhamDevCH
دوستان اولین قسمت دوره آموزش مقدماتی DRF یا همون Django rest framework منتشر شد 🤩.
تو این دوره شما از صفر تا ۷۰ درصد DRF رو یاد خواهید گرفت بعد از این دوره میتونید هر برنامه ای که میخایید به صورت API و با استفاده از DRF توسعه بدید.
تو این دوره سعی میکنم علاوه بر یادگیری خود DRF با مفاهیم محیط کار و ابزار هاش هم آشنا بشید، مثل لینوکس، postman و ....
امیدوارم از این دوره چیزها مفید و باحالی یاد بگیرید❤️🫵
با معرفی دوره به دوستانتون باعث حمایت و در نتیجه دوره و آموزش ها بیشتر بشید🥹❤️🔥
مرسی از @AlirezaWDX برای تامبنیل ویدیو ❤️🔥🫵
💬 join -> @TorhamDevCH
YouTube
آموزش مقدماتی DRF با تورهام قسمت اول | Django Rest Framework
اولین قسمت دوره آموزش مقدماتی DRF. تو این قسمت به سه سر فصل اول دوره میپردازیم🤝👨💻
امیدوارم از این دوره لذت کافی رو ببرید و چیزهای جدیدی یاد بگیرید.
لینک ها:
لینک های ویدیو :
گیتهاب DRF : https://github.com/encode/django-rest-framework
وبسایت DRF : h…
امیدوارم از این دوره لذت کافی رو ببرید و چیزهای جدیدی یاد بگیرید.
لینک ها:
لینک های ویدیو :
گیتهاب DRF : https://github.com/encode/django-rest-framework
وبسایت DRF : h…
👍11❤2
Forwarded from behrad
دوتا مفهوم داریم ، که خیلیا اینارو باهم اشتباها قاطی میکنن...
XSS : Cross Site Scripting
CSRF/XSRF : Cross Site Request Forgery
=+=+=+=+=+=+=+=+=+=+=+=+=+
من سعی میکنم جدا جدا توضیح بدم ، و بگم چیه...
=+=+=+=+=+=+=+=+=+=+=+=+=+
قبل از اینکه شروع کنم یه مفهومی هست که پیشنیازه توضیح بدم، بهش میگن:
SOP : Same Origin Policy
یه پالیسی (سیاست/قانون/عرف..) هست که توی وب رعایتش میکنن ، اونم اینه که کلاینتها/سرور ها رکوئستی رو valid میپندارن و معتبر میدونن که دقیقا از منبع درستش (منبع قبلی) باشه.
این اعتبار سنجی هم با چک کردن 3 تا چیز مشخص میشه:
1- پرتکلش همون باشه (مثلا HTTP)
2- آدرس هاست (دامین) همون باشه
3- پورت دقیقا همون باشه
مثلا یکی میاد یه رکوئست رو عوض میکنه به سمت براوزر تو و میگه من گوگلم:
https://hacker.com:80
براوزر تو گوگل رو این میدونه:
https://google.com:80
حالا میاد چک میکنه:
هاست همون نیست❌
پورت همونه✅
یکی از شرطها برقرار نیست پس ارور:
Same Origin Policy
میده و رکوئست دراپ میشه😬
با این پالیسی میشه جلوی خیلی از حمله هارو گرفت ، ولی حملات دیگری هستن که با وجود این پالیسی بازم قابل انجامن مثل
XSS
XSRF/CSRF
که که قراره راجع بهشون حرف بزنیم ✅
XSS : Cross Site Scripting
CSRF/XSRF : Cross Site Request Forgery
=+=+=+=+=+=+=+=+=+=+=+=+=+
من سعی میکنم جدا جدا توضیح بدم ، و بگم چیه...
=+=+=+=+=+=+=+=+=+=+=+=+=+
قبل از اینکه شروع کنم یه مفهومی هست که پیشنیازه توضیح بدم، بهش میگن:
SOP : Same Origin Policy
یه پالیسی (سیاست/قانون/عرف..) هست که توی وب رعایتش میکنن ، اونم اینه که کلاینتها/سرور ها رکوئستی رو valid میپندارن و معتبر میدونن که دقیقا از منبع درستش (منبع قبلی) باشه.
این اعتبار سنجی هم با چک کردن 3 تا چیز مشخص میشه:
1- پرتکلش همون باشه (مثلا HTTP)
2- آدرس هاست (دامین) همون باشه
3- پورت دقیقا همون باشه
مثلا یکی میاد یه رکوئست رو عوض میکنه به سمت براوزر تو و میگه من گوگلم:
https://hacker.com:80
براوزر تو گوگل رو این میدونه:
https://google.com:80
حالا میاد چک میکنه:
https://hacker.com:80
https://google.com:80
\____/ \______/ \__/
Prtocol Host Port
پروتکل همونه✅هاست همون نیست❌
پورت همونه✅
یکی از شرطها برقرار نیست پس ارور:
Same Origin Policy
میده و رکوئست دراپ میشه😬
با این پالیسی میشه جلوی خیلی از حمله هارو گرفت ، ولی حملات دیگری هستن که با وجود این پالیسی بازم قابل انجامن مثل
XSS
XSRF/CSRF
که که قراره راجع بهشون حرف بزنیم ✅
👍6
Forwarded from behrad
#سوال : حمله XSS چیست؟
XSS
ایکس اس اس - مخفف
XSS : Cross Site Scripting
هست.
=+=+=+=+=+=+=+=+=+=+=+=+
بطور کلی : یعنی که در یک سایت ، کد جاوااسکریپت اینجکت (تزریق) کنیم!
یعنی یه جوری کد جاوا اسکریپت رو بچپونیم توی بدنه سایت ، که کده اجرا بشه!
سناریوهای مختلف داره.... مثلا من یادمه اون اوایل که وبلاگستان فارسی راه افتاده بود و همه واسه خودشون یه وبلاگ درست میکردن توی بلاگفا و😋😬
وبلاگ نویسی تازه به اون معنا توی ایران راه افتاده بود ، خیلی راحت میشد XSS رو توی وبلاگ ها زد!
کافی بود یه کد جاوا اسکریپت رو توی قسمت کامنتها بذاری ، بجای کامنت.... . 90 درصد سایتها اعتبار سنجیش نمیکردن ، و وقتی کامنتت نشون داده میشد ، کدت هم برای بقیه مردم ران میشد😶🌫️
و نابود....😬
=+=+=+=+=+=+=+=+=+=+=+=+
الان پیاده سازیش به این راحتیا نیست...
=+=+=+=+=+=+=+=+=+=+=+=+
به هر نوع
javascript injection
در یه وبسایت میگن XSS
=+=+=+=+=+=+=+=+=+=+=+=+
ایکس اس اس انواع مختلفی داره:
✅Reflected:
ایکس-اس-اس بازتابی:
مثلا یه سایتی هست ، یه فرمی داره که هر چی توش بنویسی میره سمت سرور و برمیگرده و بخش از کانتنت HTML صفحه میشه.
مثلا یه صفحه ساده رو فرض کنین ، توی قسمت
name : ———-
توی فرم هرچی بنویسی و فرم رو سابمیت کنی ، درخواستت میره و برمیگرده و هرچی توی name نوشته بودی رو نشون میده:
Your name is : "behrad"
اگه من به جای behrad یه کد js بزنم ، میره و میاد و اجرا میشه... این میشه بازتابی.
✅Stored:
ایکس اس اس ذخیره شده ، زمانی هست که کد مخرب میره توی یه دیتابیسی ذخیره میشه، و از اون به بعد از توی دیتابیس خونده میشه و میاد(شاید به همه مردم زینپس حمله صورت بگیره)
✅DOM:
یک نوع xss کلاینت ساید هست و زمانی هست که ایکس اس اس رو روی آبجک DOM میزنیم ( تخصصیه) وقتی DOM دست یه اسکریپت مخرب بیفته ، همه چیز صفحه دستش افتاده...
✅Mutation:
زمانی که یه جهشی توی اینپوت کلاینت صورت بگیره...
انواع دیگه هم داره که از حوصله این پیام خارجه🙂
=+=+=+=+=+=+=+=+=+=+=+=+
XSS
یعنی که در یک سایت ، کد جاوااسکریپت اینجکت (تزریق) کنیم!
XSS
ایکس اس اس - مخفف
XSS : Cross Site Scripting
هست.
=+=+=+=+=+=+=+=+=+=+=+=+
بطور کلی : یعنی که در یک سایت ، کد جاوااسکریپت اینجکت (تزریق) کنیم!
یعنی یه جوری کد جاوا اسکریپت رو بچپونیم توی بدنه سایت ، که کده اجرا بشه!
سناریوهای مختلف داره.... مثلا من یادمه اون اوایل که وبلاگستان فارسی راه افتاده بود و همه واسه خودشون یه وبلاگ درست میکردن توی بلاگفا و😋😬
وبلاگ نویسی تازه به اون معنا توی ایران راه افتاده بود ، خیلی راحت میشد XSS رو توی وبلاگ ها زد!
کافی بود یه کد جاوا اسکریپت رو توی قسمت کامنتها بذاری ، بجای کامنت.... . 90 درصد سایتها اعتبار سنجیش نمیکردن ، و وقتی کامنتت نشون داده میشد ، کدت هم برای بقیه مردم ران میشد😶🌫️
و نابود....😬
=+=+=+=+=+=+=+=+=+=+=+=+
الان پیاده سازیش به این راحتیا نیست...
=+=+=+=+=+=+=+=+=+=+=+=+
به هر نوع
javascript injection
در یه وبسایت میگن XSS
=+=+=+=+=+=+=+=+=+=+=+=+
ایکس اس اس انواع مختلفی داره:
✅Reflected:
ایکس-اس-اس بازتابی:
مثلا یه سایتی هست ، یه فرمی داره که هر چی توش بنویسی میره سمت سرور و برمیگرده و بخش از کانتنت HTML صفحه میشه.
مثلا یه صفحه ساده رو فرض کنین ، توی قسمت
name : ———-
توی فرم هرچی بنویسی و فرم رو سابمیت کنی ، درخواستت میره و برمیگرده و هرچی توی name نوشته بودی رو نشون میده:
Your name is : "behrad"
اگه من به جای behrad یه کد js بزنم ، میره و میاد و اجرا میشه... این میشه بازتابی.
✅Stored:
ایکس اس اس ذخیره شده ، زمانی هست که کد مخرب میره توی یه دیتابیسی ذخیره میشه، و از اون به بعد از توی دیتابیس خونده میشه و میاد(شاید به همه مردم زینپس حمله صورت بگیره)
✅DOM:
یک نوع xss کلاینت ساید هست و زمانی هست که ایکس اس اس رو روی آبجک DOM میزنیم ( تخصصیه) وقتی DOM دست یه اسکریپت مخرب بیفته ، همه چیز صفحه دستش افتاده...
✅Mutation:
زمانی که یه جهشی توی اینپوت کلاینت صورت بگیره...
انواع دیگه هم داره که از حوصله این پیام خارجه🙂
=+=+=+=+=+=+=+=+=+=+=+=+
XSS
یعنی که در یک سایت ، کد جاوااسکریپت اینجکت (تزریق) کنیم!
👍9
Forwarded from behrad
#سوال : حمله CSRF/XSRF چیست؟
CSRF/XSRF
سیسرف (موجسواری در دریا- sea surf) یا سی اس آر اف یا ایکس اس آر اف ، مخفف
CSRF/XSRF : Cross Site Request Forgery
هست.
=+=+=+=+=+=+=+=+=+=+=+=+
به طور کلی این حمله یعنی:
یک دامین ، رکوئستی که مربوط به دامین دیگری هست رو جعل میکنه و نهایتا مقادیری رو تغییر میده.
👇
CSRF/XSRF
سیسرف (موجسواری در دریا- sea surf) یا سی اس آر اف یا ایکس اس آر اف ، مخفف
CSRF/XSRF : Cross Site Request Forgery
هست.
=+=+=+=+=+=+=+=+=+=+=+=+
به طور کلی این حمله یعنی:
یک دامین ، رکوئستی که مربوط به دامین دیگری هست رو جعل میکنه و نهایتا مقادیری رو تغییر میده.
👇
👍7
Forwarded from behrad
این حمله به شدت گسترده هست ، ازش میشه هزاران تا مثال زد.
=+=+=+=+=+=+=+=+=+=+=+=+
مثلا : یه url توی سایت داریم که هر موقع این url رو فراخونی کنیم ، و یه مقدار خاصی رو پست کنیم یه اتفاقی می افته... ( مثلا اکانتمون حذف میشه)
یه نوع API ساده طراحی شده... همه هم همینجوری طراحی میکنن..✅
طرف سایت فروم رو اینطوری طراحی کرده که برای حذف اکانت دکمه فلان رو بزن، که اون دکمه ریدایرت میده به :
mywesite.com/delete_my_acc.php
و اگر پارامتری به اسم delete با مقدار 1از طرف من پست بشه، اکانت من پاک میشه.✅ همه همینجوری طراحی میکنن دیگه...
=========================
حالا
من خودم نمیخوام اکانتم رو پاک کنم ! دارم توی سایت برای خودم میجرخم که میبینم یه نفر توی فروم یه لینک داده که یه عکس سسکی خشگلی هست❌😬
منم تحریک میشم و روش کلیک میکنم!
ریدایرکت میشم به یه سایت سسکی و یه عکس سسکی تر هم میبینم و به خیال خودم کیف میکنم😬😀
بعدش برمیگردم که بیام توی فروم دوباره بچرخم...
منتهی بهم ارور میده که اکانت شما پاک شده! و من دیگه اکانتی ندارم!
=+=+=+=+=+=+=+=+=+
چه اتفاقی افتاد؟
من یک اتک XSRF خوردم و خودم خبر ندارم!
=+=+=+=+=+=+=+=+=+
سورس کد سایت سسکی این بوده:
برای خودتون تحلیل کنین ببینین چیکار میکنه...
با جاوااسکریپت یه ریکوئست میزنه به اون URL و میگه که من بهرادم ... میخوام اکانتم رو پاک کنم!!!
باورت نمیشه من بهرادم؟ اینم کوکی هام!!!!!!
🍪🍪🍪🍪🍪🍪
(کوکی های من رو چجوری گرفت؟! نگرفت! خود براوزر شما برای هر URL که کش کرده {میشناسه} کوکی هارو انکپسوله میکنه و میفرسته همیشه.... واسه همینه که شما میتونی توی یه سایت لاگین کنی!)
=+=+=+=+=+=+=+=+
خلاصه من CSRF خوردم و اکانت من پاک شد...
=+=+=+=+=+=+=+=+
سیاست
SOP
که قبلش توضیح دادم، اینجا فقط جلوی این رو میگیره که سایت سسکی هکر نتونه جواب ریکوئست رو بگیره... یعنی ریکوئست رفته و موقع برگشت جوابش دراپ شده....
خب چه فایده... اکانت من پاک شده :)
هکر چیزی از نتیجه رو ندید.... فقط تیری توی تاریکی در کرد!
=+=+=+=+=+=+=+=+
این یه مثال خیـــــــــــلی ساده بود...
CSRF
رو میشه روی URL زد ..✅
میشه روی پارامترهای GET زد...✅
میشه توی فایلها زد✅
میشه روی عکس زد✅
میشه توی iframe زد✅
میشه توی POST ✅
میشه روی لینک زد ،✅✅✅✅
میشه روی JS زد✅
میشه خیلی کارا کرد🥴
من به همین جا بسنده میکنم...
=+=+=+=+=+=+=+=+=+=+=+=+
خلاصه کلام اینکه:
سی-سرف یعنی یک دامین ، رکوئستی که مربوط به دامین دیگری هست رو جعل میکنه و نهایتا مقادیری رو تغییر میده.
=+=+=+=+=+=+=+=+=+=+=+=+
مثلا : یه url توی سایت داریم که هر موقع این url رو فراخونی کنیم ، و یه مقدار خاصی رو پست کنیم یه اتفاقی می افته... ( مثلا اکانتمون حذف میشه)
یه نوع API ساده طراحی شده... همه هم همینجوری طراحی میکنن..✅
طرف سایت فروم رو اینطوری طراحی کرده که برای حذف اکانت دکمه فلان رو بزن، که اون دکمه ریدایرت میده به :
mywesite.com/delete_my_acc.php
و اگر پارامتری به اسم delete با مقدار 1از طرف من پست بشه، اکانت من پاک میشه.✅ همه همینجوری طراحی میکنن دیگه...
=========================
حالا
من خودم نمیخوام اکانتم رو پاک کنم ! دارم توی سایت برای خودم میجرخم که میبینم یه نفر توی فروم یه لینک داده که یه عکس سسکی خشگلی هست❌😬
منم تحریک میشم و روش کلیک میکنم!
ریدایرکت میشم به یه سایت سسکی و یه عکس سسکی تر هم میبینم و به خیال خودم کیف میکنم😬😀
بعدش برمیگردم که بیام توی فروم دوباره بچرخم...
منتهی بهم ارور میده که اکانت شما پاک شده! و من دیگه اکانتی ندارم!
=+=+=+=+=+=+=+=+=+
چه اتفاقی افتاد؟
من یک اتک XSRF خوردم و خودم خبر ندارم!
=+=+=+=+=+=+=+=+=+
سورس کد سایت سسکی این بوده:
<img source="sexy.png" >=+=+=+=+=+=+=+=+=+=+=+=+
<form
action="mywesite.com/delete_my_acc.php"
method="POST"
id="sexy"
>
<input type="hidden" name="delete" value="1" />
</form>
<script>
document.getElementById("sexy").submit()
</script>
برای خودتون تحلیل کنین ببینین چیکار میکنه...
با جاوااسکریپت یه ریکوئست میزنه به اون URL و میگه که من بهرادم ... میخوام اکانتم رو پاک کنم!!!
باورت نمیشه من بهرادم؟ اینم کوکی هام!!!!!!
🍪🍪🍪🍪🍪🍪
(کوکی های من رو چجوری گرفت؟! نگرفت! خود براوزر شما برای هر URL که کش کرده {میشناسه} کوکی هارو انکپسوله میکنه و میفرسته همیشه.... واسه همینه که شما میتونی توی یه سایت لاگین کنی!)
=+=+=+=+=+=+=+=+
خلاصه من CSRF خوردم و اکانت من پاک شد...
=+=+=+=+=+=+=+=+
سیاست
SOP
که قبلش توضیح دادم، اینجا فقط جلوی این رو میگیره که سایت سسکی هکر نتونه جواب ریکوئست رو بگیره... یعنی ریکوئست رفته و موقع برگشت جوابش دراپ شده....
خب چه فایده... اکانت من پاک شده :)
هکر چیزی از نتیجه رو ندید.... فقط تیری توی تاریکی در کرد!
=+=+=+=+=+=+=+=+
این یه مثال خیـــــــــــلی ساده بود...
CSRF
رو میشه روی URL زد ..✅
میشه روی پارامترهای GET زد...✅
میشه توی فایلها زد✅
میشه روی عکس زد✅
میشه توی iframe زد✅
میشه توی POST ✅
میشه روی لینک زد ،✅✅✅✅
میشه روی JS زد✅
میشه خیلی کارا کرد🥴
من به همین جا بسنده میکنم...
=+=+=+=+=+=+=+=+=+=+=+=+
خلاصه کلام اینکه:
سی-سرف یعنی یک دامین ، رکوئستی که مربوط به دامین دیگری هست رو جعل میکنه و نهایتا مقادیری رو تغییر میده.
👍16❤3
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و هفتم - کاستوم کردن validation
توی این ویدئو اول ظاهرا خطاهارو درست کردیم و با فیلتری به اسم striptags آشنا شدیم و تونستیم ظاهر خطاها رو بهتر کنیم. بعد از اون متن خطاهارو کاستوم کردیم و با error_messages آشنا شدیم. در ادامه view جدیدی به اسم signup ساختیم و با HttpResponse جنگو هم آشنا شدیم. بعد از اون با پارامتر name در url ها آشنا شدیم و مزیت استفاده اش رو یاد گرفتیم. در انتهای آموزش هم با متد reverse آشنا شدیم و ازش استفاده کردیم.
لینک آپارات:
https://www.aparat.com/v/63a1c
لینک یوتیوب:
https://youtu.be/g297BS6tEm4
توی این ویدئو اول ظاهرا خطاهارو درست کردیم و با فیلتری به اسم striptags آشنا شدیم و تونستیم ظاهر خطاها رو بهتر کنیم. بعد از اون متن خطاهارو کاستوم کردیم و با error_messages آشنا شدیم. در ادامه view جدیدی به اسم signup ساختیم و با HttpResponse جنگو هم آشنا شدیم. بعد از اون با پارامتر name در url ها آشنا شدیم و مزیت استفاده اش رو یاد گرفتیم. در انتهای آموزش هم با متد reverse آشنا شدیم و ازش استفاده کردیم.
لینک آپارات:
https://www.aparat.com/v/63a1c
لینک یوتیوب:
https://youtu.be/g297BS6tEm4
👍3
Forwarded from برنامه نویسی از پایه
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت چهل و هشتم - دیتابیس چیست
در ابتدای این ویدئو برای ما سوال بود که اطلاعات کاربرها کجا ذخیره می شوند. پس به مفهومی به اسم دیتابیس رسیدیم و یکم در موردش سرچ کردیم. توی سرچ هامون با دیتابیس و نرم افزارهای DBMS آشنا شدیم و با اسم چند تا نرم افزار DBMS مثل SQL Server, PostgreSql, MySql, Oracle و... آشنا شدیم. در ادامه با SQLite هم آشنا شدیم و فهمیدیم که برای توسعه خیلی پر استفاده است و جنگو به صورت پیشفرض ازش استفاده می کنه. با نرم افزار DB Browser for SQLite دیتابیسمون رو باز کردیم و با جداول پیشفرض جنگو یکم آشنا شدیم. در ادامه با ارث بری از ModelForm دیدیم که جنگو چقدر راحت برای ما فرم ثبت نام رو ایجاد میکنه.
لینک آپارات:
https://www.aparat.com/v/r5IBe
لینک یوتیوب:
https://youtu.be/8KKy_QoCjyk
در ابتدای این ویدئو برای ما سوال بود که اطلاعات کاربرها کجا ذخیره می شوند. پس به مفهومی به اسم دیتابیس رسیدیم و یکم در موردش سرچ کردیم. توی سرچ هامون با دیتابیس و نرم افزارهای DBMS آشنا شدیم و با اسم چند تا نرم افزار DBMS مثل SQL Server, PostgreSql, MySql, Oracle و... آشنا شدیم. در ادامه با SQLite هم آشنا شدیم و فهمیدیم که برای توسعه خیلی پر استفاده است و جنگو به صورت پیشفرض ازش استفاده می کنه. با نرم افزار DB Browser for SQLite دیتابیسمون رو باز کردیم و با جداول پیشفرض جنگو یکم آشنا شدیم. در ادامه با ارث بری از ModelForm دیدیم که جنگو چقدر راحت برای ما فرم ثبت نام رو ایجاد میکنه.
لینک آپارات:
https://www.aparat.com/v/r5IBe
لینک یوتیوب:
https://youtu.be/8KKy_QoCjyk
👍7
❔ این متن بخشی از یک پست از کانال @pytens هست، خوشحال میشم نظر خودتون رو بگید (مهم نیست خودتون در چه سطحی هستید):
یک چند روزی هست ذهنم درگیر یک موضوع شده، همه چیز هم از یک دورهمی شروع شد و یکی از افراد که بعد از شنیدن صحبتها گفت من یک دختر دارم ۹ سالش هست و داریم سعی میکنیم استعدادش رو کشف کنیم (با احترام به علایق) که راهی که براش بهتر هست رو پیش بگیره نه اینکه دکتر، مهندس بشه چون خانوادهاش توی این مشاغل هستند (چه درک خوبی)
بعد از من پرسید بنظر شما که چندین سال هست توی این کار مشغول هستی چطور میشه فهمید یک نفر برنامهنویس خوبی میشه در نهایت یا نه !؟
✅ نظرتون رو کامنت کنید یا خصوصی برای @miladhzz بفرستید. تشکر
یک چند روزی هست ذهنم درگیر یک موضوع شده، همه چیز هم از یک دورهمی شروع شد و یکی از افراد که بعد از شنیدن صحبتها گفت من یک دختر دارم ۹ سالش هست و داریم سعی میکنیم استعدادش رو کشف کنیم (با احترام به علایق) که راهی که براش بهتر هست رو پیش بگیره نه اینکه دکتر، مهندس بشه چون خانوادهاش توی این مشاغل هستند (چه درک خوبی)
بعد از من پرسید بنظر شما که چندین سال هست توی این کار مشغول هستی چطور میشه فهمید یک نفر برنامهنویس خوبی میشه در نهایت یا نه !؟
✅ نظرتون رو کامنت کنید یا خصوصی برای @miladhzz بفرستید. تشکر
👍7