✅ هشتمین گفتگوی فنی #فری_تاک
با موضوع : Security
سه شنبه 28 اردیبهشت، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی - مجتبی تاجیک
در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice های جلوگیری از این مشکلات صحبت خواهیم کرد
در این جلسه میزبان مجتبی تاجیک عزیز هستیم که تخصصا تو حوزه امنیت کار میکنه و بیش از 15 سال تجربه داره
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
ویس ضبط شده جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین.
___________________
@DotNetZoom
با موضوع : Security
سه شنبه 28 اردیبهشت، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی - مجتبی تاجیک
در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice های جلوگیری از این مشکلات صحبت خواهیم کرد
در این جلسه میزبان مجتبی تاجیک عزیز هستیم که تخصصا تو حوزه امنیت کار میکنه و بیش از 15 سال تجربه داره
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
این گفتگو صوتی هست و توسط قابلیت Voice Chat تلگرام (چیزی شبیه به Clubhouse یا Spaces توئیتر) در همین کانال برگزار میشه
ویس جلسات گفتگو ضبط شده و در آخر همینجا منتشر خواهد شد
جهت استفاده از قابلیت Voice Chat از آپدیت بودن تلگرامتون اطمینان حاصل کنین.
ویس ضبط شده جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین.
___________________
@DotNetZoom
Software Philosohpy Talk 03
Software Philosophy
سومین #گپ_تکنیکال «فلسفه نرمافزار»
با موضوع: «Software Architecture: Performance»
با حضور
#مهران_داودی
#یاسر_مرادی
لطفا نظرتون رو هم در مورد گپ این هفته بنویسید برامون :)
@SoftwarePhilosophy
@SoftwarePhilosophy
@SoftwarePhilosophy
با موضوع: «Software Architecture: Performance»
با حضور
#مهران_داودی
#یاسر_مرادی
لطفا نظرتون رو هم در مورد گپ این هفته بنویسید برامون :)
@SoftwarePhilosophy
@SoftwarePhilosophy
@SoftwarePhilosophy
DotNetZoom
✅ هشتمین گفتگوی فنی #فری_تاک با موضوع : Security سه شنبه 28 اردیبهشت، ساعت 21:00 ارائه دهندگان: محمدجواد ابراهیمی - مجتبی تاجیک در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice…
دوستان ویس چت استارت شد از بحث عقب نمونین :)
Security
DotNetZoom
✅ ویس ضبط شده هشتمین گفتگوی فنی #فری_تاک با موضوع Security
ارائه دهندگان : مجتبی تاجیک، محمدجواد ابراهیمی
_________________
@DotNetZoom
ارائه دهندگان : مجتبی تاجیک، محمدجواد ابراهیمی
_________________
@DotNetZoom
DotNetZoom
DotNetZoom – Security
✅ مباحث و کلمات کلیدی ایی که در این جلسه از #فری_تاک در موردشون صحبت کردیم
توی این جلسه در مورد اهمیت امنیت و تعدادی از آسیب پذیری های مهم و رایج امنیتی صحبت کردیم و برای هر کدوم راه حل ها، best practice ها و نکاتی که باید رعایت بشه رو بررسی کردیم. از جمله مواردی که بهشون پرداختیم:
- حمله Injection, انواع اون، راه حل ها و نکاتی که باید رعایت کنیم
- حمله MitM و راه حل ها و جلوگیری توسط HTTPS و HSTS
- حمله XSS راه حل ها و نکاتی که باید رعایت کنیم
- بحث Authentication و 2FA و نکات و Best Practice های این قضیه
- تامین امنیت پسورد + توصیه هایی در رابطه با الگوریتم های Hashing (ایمن و نا ایمن ها)
- همچین برای هر قسمت برترین کتابخانه های دات نتی اون زمینه رو معرفی کردیم که لیستش رو در آخر میتونین مشاهده کنین
🔰جلسه بعدی (سه شنبه 4 خرداد) در مورد باقی موارد صحبت خواهیم کرد، از جمله:
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDos
- Security of JWT and Refresh Token
- Key Secrets Storage
- Database Security
- ApiGateway Security
- Malicious File Upload
- Disaster Recovery
- Decompiling - Obfuscate and Deobfuscate
لیست کلیه مواردی که این جلسه و جلسه آینده (سه شنبه 4 خرداد) در موردشون صحبت کردیم و میکنیم رو میتونین تو لینک زیر مشاهده کنین
https://www.notion.so/Free-Talk-Security-8ab8909ae77f451abf9f391a0da8b072
🔰لیست آموزش ها جهت مطالعه بیشتر:
زد عفونی کردن HTML با HTML Sanitizer
https://youtu.be/-4CpdphM838
سرنوشت اعتبارسنجی درخواستها در ASP.NET Core
https://www.dntips.ir/post/3008
ایجاد یک ActionFilter جهت تمیز کردن اطلاعات ورودی در ASP.NET Core
https://www.dntips.ir/post/3223
تحلیل و بررسی SQL Injection
https://www.dntips.ir/post/3067
تحلیل و بررسی (Cross Site Scripting (XSS
https://www.dntips.ir/post/3105
تامین امنیت دیتا های حساس و مهم در EF Core
https://news.1rj.ru/str/DotNetZoom/1097
تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
هک برنامه های دات نتی با dnSpy و de4dot + معرفی ویدئو های آموزش زبان اصلی
https://news.1rj.ru/str/DotNetZoom/1012
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
https://www.dotnettips.info/post/2992
افزایش امنیت JWT توسط Refresh Token در ASP NET Core
https://news.1rj.ru/str/DotNetZoom/1027
🔰لیست کتابخانه های معرفی شده:
https://www.nuget.org/packages/NWebsec
https://www.nuget.org/packages/HtmlSanitizer/
https://www.nuget.org/packages/PwnedPasswords.Validator/
https://www.nuget.org/packages/PasswordGenerator/
https://www.nuget.org/packages/BCrypt.Net-Next/
https://www.nuget.org/packages/Portable.BouncyCastle/
https://www.nuget.org/packages/PCLCrypto/2.1.40-alpha
https://www.nuget.org/packages/Sodium.Core/
___________________
@DotNetZoom
توی این جلسه در مورد اهمیت امنیت و تعدادی از آسیب پذیری های مهم و رایج امنیتی صحبت کردیم و برای هر کدوم راه حل ها، best practice ها و نکاتی که باید رعایت بشه رو بررسی کردیم. از جمله مواردی که بهشون پرداختیم:
- حمله Injection, انواع اون، راه حل ها و نکاتی که باید رعایت کنیم
- حمله MitM و راه حل ها و جلوگیری توسط HTTPS و HSTS
- حمله XSS راه حل ها و نکاتی که باید رعایت کنیم
- بحث Authentication و 2FA و نکات و Best Practice های این قضیه
- تامین امنیت پسورد + توصیه هایی در رابطه با الگوریتم های Hashing (ایمن و نا ایمن ها)
- همچین برای هر قسمت برترین کتابخانه های دات نتی اون زمینه رو معرفی کردیم که لیستش رو در آخر میتونین مشاهده کنین
🔰جلسه بعدی (سه شنبه 4 خرداد) در مورد باقی موارد صحبت خواهیم کرد، از جمله:
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDos
- Security of JWT and Refresh Token
- Key Secrets Storage
- Database Security
- ApiGateway Security
- Malicious File Upload
- Disaster Recovery
- Decompiling - Obfuscate and Deobfuscate
لیست کلیه مواردی که این جلسه و جلسه آینده (سه شنبه 4 خرداد) در موردشون صحبت کردیم و میکنیم رو میتونین تو لینک زیر مشاهده کنین
https://www.notion.so/Free-Talk-Security-8ab8909ae77f451abf9f391a0da8b072
🔰لیست آموزش ها جهت مطالعه بیشتر:
زد عفونی کردن HTML با HTML Sanitizer
https://youtu.be/-4CpdphM838
سرنوشت اعتبارسنجی درخواستها در ASP.NET Core
https://www.dntips.ir/post/3008
ایجاد یک ActionFilter جهت تمیز کردن اطلاعات ورودی در ASP.NET Core
https://www.dntips.ir/post/3223
تحلیل و بررسی SQL Injection
https://www.dntips.ir/post/3067
تحلیل و بررسی (Cross Site Scripting (XSS
https://www.dntips.ir/post/3105
تامین امنیت دیتا های حساس و مهم در EF Core
https://news.1rj.ru/str/DotNetZoom/1097
تشخیص اصالت ردیفهای یک بانک اطلاعاتی در EF Core
https://www.dotnettips.info/post/3100
هک برنامه های دات نتی با dnSpy و de4dot + معرفی ویدئو های آموزش زبان اصلی
https://news.1rj.ru/str/DotNetZoom/1012
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
https://www.dotnettips.info/post/2992
افزایش امنیت JWT توسط Refresh Token در ASP NET Core
https://news.1rj.ru/str/DotNetZoom/1027
🔰لیست کتابخانه های معرفی شده:
https://www.nuget.org/packages/NWebsec
https://www.nuget.org/packages/HtmlSanitizer/
https://www.nuget.org/packages/PwnedPasswords.Validator/
https://www.nuget.org/packages/PasswordGenerator/
https://www.nuget.org/packages/BCrypt.Net-Next/
https://www.nuget.org/packages/Portable.BouncyCastle/
https://www.nuget.org/packages/PCLCrypto/2.1.40-alpha
https://www.nuget.org/packages/Sodium.Core/
___________________
@DotNetZoom
Felony on Notion
Free Talk - Security
Intro (5 Min)
✅ آموزش Unit Testing با استفاده از NUnit و Moq بخش اول: آشنایی با NUnit
به عمل نوشتن کدی که بررسی درستی نتیجه سیستم یا بخشی از آن را برعهده دارد Test گفته میشود. یک Unit به کوچک ترین بخش کد که تست پذیر باشد گفته می شود.معمولا Unit به یک کلاس اطلاق میشود که متد ها و رفتار های آن قابل تست باشد. تست واحد یا Unit Test بررسی میکند که یک عملیات نتیجه پیش بینی شده را بر میگرداند یا خیر.
در این سری آموزش قصد داریم به فریم ورک محبوب NUnit و همچنین Mocking بوسیله کتابخانه محبوب Moq بپردازیم.
#بابک_طارمی
https://vrgl.ir/rZMij
___________________
@DotNetZoom
به عمل نوشتن کدی که بررسی درستی نتیجه سیستم یا بخشی از آن را برعهده دارد Test گفته میشود. یک Unit به کوچک ترین بخش کد که تست پذیر باشد گفته می شود.معمولا Unit به یک کلاس اطلاق میشود که متد ها و رفتار های آن قابل تست باشد. تست واحد یا Unit Test بررسی میکند که یک عملیات نتیجه پیش بینی شده را بر میگرداند یا خیر.
در این سری آموزش قصد داریم به فریم ورک محبوب NUnit و همچنین Mocking بوسیله کتابخانه محبوب Moq بپردازیم.
#بابک_طارمی
https://vrgl.ir/rZMij
___________________
@DotNetZoom
ویرگول
آموزش Unit Testing با استفاده از NUnit و Moq بخش اول: آشنایی با NUnit
در این سری آموزش قصد داریم به فریم ورک محبوب NUnit و همچنین Mocking بوسیله کتابخانه محبوب Moq بپردازیم.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ در مورد متد ConfigureAwait بیشتر بدانید
این مورد توضیحش کمی پیچیدس و نیاز داره یه سری موارد رو قبلش بدونین مثل SynchronizationContext و TaskScheduler ولی خیلی ساده بخوام توضیح بدم اینکه وقتی متد async ایی رو فراخوانی میکنید اون تکه کد داخل متد async ایی توسط یک Thread دیگه [ترد ثانویه] (متفاوت از ترد [اصلی] - ترد فراخوانی کننده متد) اجرا میشه (البته نه الزاما ولی در متد های async IO bound بله)
حالا اگه داخل اون متد async ایی نیاز به دسترسی به اشیایی از Context ترد اصلی نیاز داشته باشید، باید [ترد ثانویه] برگرده به Context ترد اصلی [اصلی] تا بتونه به اشیا اون دسترسی داشته باشه وگرنه خطا میده که "یک ترد نمیتونه به اشیا ترد دیگه دسترسی داشته باشه"
مثلا توی WinForm بخواید مقدار یک کنترل UI مثل
به طور پیشفرض وقتی ما یک متد async رو به صورت عادی await میکنیم، پس از اتمام Task مربوطه، ترد ثانویه برمیگرده به Context ترد اصلی و ما بدون هیچ مشکلی میتونیم به اشیا Context ترد اصلی دسترسی پیدا کنیم ولی این قضیه یه سرباری رو داره تحمیل میکنه که بعضی وقتا بهش نیازی نیست
مثلا وقتی که ما یک کد general-purpose (غیر وابسته به Context خاصی) رو مینویسیم (مثلا کدی که به
در مقابل وقتی ما داریم یک کد application-level (وابسته به Context خاص) رو مینویسیم (مثلا کدی که به UI Control ها توی WinForm یا HttpContext.Current توی ASPNET MVC نیاز داره) باید این قابلیت رو داشته باشیم حتما وگرنه به مشکل میخوریم (خطای "یک ترد نمیتونه به اشیا ترد دیگه دسترسی داشته باشه")
واسه غیر فعال کردن این امکان باید بر روی متد های async مون از متد ConfigureAwait با مقدار (false) استفاده کنیم . مثال
🔸وقتی که کد general-purpose مینویسید بهتره از متد ConfigureAwait با مقدار (false) استفاده کنید.
🔹ولی وقتی که کد application-level مینویسید به هیچ وجه این کارو نکنید.
🔰نکته :
1️⃣ توی ASPNET Core چون به صورت پیشفرض SynchronizationContext خاص خودش رو نداره فرقی هم نمیکنه از ConfigureAwait استفاده بکنین یا نه (البته تا مادامی که به صورت دستی SynchronizationContext ایی ست نکرده باشین)
2️⃣ متد هایی که توسط Task.Run هم اجرا میشن نیازی به ConfigureAwait ندارن چون Task.Run به صورت ضمنی TaskScheduler.Default استفاده میکنه پس SynchronizationContext ترد اجرا کننده null میشه. (اینم تا مادامی که به صورت دستی SynchronizationContext ایی ست نکرده باشین)
🔰در مقاله زیر به سوالات زیر هم پاسخ داده شده :
https://devblogs.microsoft.com/dotnet/configureawait-faq/
_______________
@DotNetZoom
این مورد توضیحش کمی پیچیدس و نیاز داره یه سری موارد رو قبلش بدونین مثل SynchronizationContext و TaskScheduler ولی خیلی ساده بخوام توضیح بدم اینکه وقتی متد async ایی رو فراخوانی میکنید اون تکه کد داخل متد async ایی توسط یک Thread دیگه [ترد ثانویه] (متفاوت از ترد [اصلی] - ترد فراخوانی کننده متد) اجرا میشه (البته نه الزاما ولی در متد های async IO bound بله)
حالا اگه داخل اون متد async ایی نیاز به دسترسی به اشیایی از Context ترد اصلی نیاز داشته باشید، باید [ترد ثانویه] برگرده به Context ترد اصلی [اصلی] تا بتونه به اشیا اون دسترسی داشته باشه وگرنه خطا میده که "یک ترد نمیتونه به اشیا ترد دیگه دسترسی داشته باشه"
مثلا توی WinForm بخواید مقدار یک کنترل UI مثل
TextBox رو بخونید/عوض کنید یا مثلا توی ASPNET MVC (به جز ASP Core چون قضیه اش فرق داره) مثلا بخواهد یه چیزی رو از HttpContext.Current بخونید/تغییر بدید. چون این اشیایی که گفتم مال ترد اصلی هست، ترد ثانویه نمیتونه به اون دسترسی پیدا کنه.به طور پیشفرض وقتی ما یک متد async رو به صورت عادی await میکنیم، پس از اتمام Task مربوطه، ترد ثانویه برمیگرده به Context ترد اصلی و ما بدون هیچ مشکلی میتونیم به اشیا Context ترد اصلی دسترسی پیدا کنیم ولی این قضیه یه سرباری رو داره تحمیل میکنه که بعضی وقتا بهش نیازی نیست
مثلا وقتی که ما یک کد general-purpose (غیر وابسته به Context خاصی) رو مینویسیم (مثلا کدی که به
UI Control ها توی WinForm یا HttpContext.Current توی ASPNET MVC نیازی نداره) مثل یک کد دانلود یک فایل از اینترنت یا انجام عملیات با دیتابیس؛ توی این موارد میتونیم با غیر فعال کردن "بحث Sync شدن Context ها" از این سربار اضافی راحت بشیمدر مقابل وقتی ما داریم یک کد application-level (وابسته به Context خاص) رو مینویسیم (مثلا کدی که به UI Control ها توی WinForm یا HttpContext.Current توی ASPNET MVC نیاز داره) باید این قابلیت رو داشته باشیم حتما وگرنه به مشکل میخوریم (خطای "یک ترد نمیتونه به اشیا ترد دیگه دسترسی داشته باشه")
واسه غیر فعال کردن این امکان باید بر روی متد های async مون از متد ConfigureAwait با مقدار (false) استفاده کنیم . مثال
await httpClient.GetAsync(url).ConfigureAwait(false)
این مورد از dead-lock هم جلوگیری کنه در مواقتی که متد async ایی رو به صورت sync فراخوانی میکنید. مثلا :asyncMethod.Wait(); یا
asyncMethod.Result; یا
asyncMethod.GetAwaiter().GetResult();
🔰 نتیجه :🔸وقتی که کد general-purpose مینویسید بهتره از متد ConfigureAwait با مقدار (false) استفاده کنید.
🔹ولی وقتی که کد application-level مینویسید به هیچ وجه این کارو نکنید.
🔰نکته :
1️⃣ توی ASPNET Core چون به صورت پیشفرض SynchronizationContext خاص خودش رو نداره فرقی هم نمیکنه از ConfigureAwait استفاده بکنین یا نه (البته تا مادامی که به صورت دستی SynchronizationContext ایی ست نکرده باشین)
2️⃣ متد هایی که توسط Task.Run هم اجرا میشن نیازی به ConfigureAwait ندارن چون Task.Run به صورت ضمنی TaskScheduler.Default استفاده میکنه پس SynchronizationContext ترد اجرا کننده null میشه. (اینم تا مادامی که به صورت دستی SynchronizationContext ایی ست نکرده باشین)
🔰در مقاله زیر به سوالات زیر هم پاسخ داده شده :
- What is a SynchronizationContext?
- What is a TaskScheduler?
- What does ConfigureAwait(false) do?
- Why would I want to use ConfigureAwait(false)?
- Why would I want to use ConfigureAwait(true)?
- When should I use ConfigureAwait(false)?
- ...
اطلاعات بیشتر :https://devblogs.microsoft.com/dotnet/configureawait-faq/
_______________
@DotNetZoom
Microsoft News
ConfigureAwait FAQ
.NET added async/await to the languages and libraries over seven years ago. In that time, it’s caught on like wildfire, not only across the .NET ecosystem, but also being replicated in a myriad of other languages and frameworks. It’s also seen a ton of improvements…
✅ نهمین گفتگوی فنی #فری_تاک
با موضوع : Security (قسمت دوم)
سه شنبه 4 خرداد، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی، مجتبی تاجیک
در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice های جلوگیری از این مشکلات صحبت خواهیم کرد
در این جلسه میزبان مجتبی تاجیک عزیز هستیم که تخصصا تو حوزه امنیت کار میکنه و بیش از 15 سال تجربه داره
جلسه قبلی درباره یه سری موارد صحبت کردیم، این جلسه در مورد باقی موارد صحبت خواهیم کرد، از جمله:
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDOS
- Security of JWT and Refresh Token
- Key Secrets Storage
- Malicious File Upload
- Decompiling, Obfuscate and Deobfuscate
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
و در آخر ویس ضبط شدش رو همینجا منتشر میکنیم
ویس جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین
___________
@DotNetZoom
با موضوع : Security (قسمت دوم)
سه شنبه 4 خرداد، ساعت 21:00
ارائه دهندگان: محمدجواد ابراهیمی، مجتبی تاجیک
در این گفتگو درباره مهم ترین آسیب پذیری های امنیتی در پروژه های نرم افزاری خصوصا Web Application ها و نیز راه حل ها و Best Practice های جلوگیری از این مشکلات صحبت خواهیم کرد
در این جلسه میزبان مجتبی تاجیک عزیز هستیم که تخصصا تو حوزه امنیت کار میکنه و بیش از 15 سال تجربه داره
جلسه قبلی درباره یه سری موارد صحبت کردیم، این جلسه در مورد باقی موارد صحبت خواهیم کرد، از جمله:
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDOS
- Security of JWT and Refresh Token
- Key Secrets Storage
- Malicious File Upload
- Decompiling, Obfuscate and Deobfuscate
#فری_تاک یک گفتگوی فنی در مورد توسعه نرم افزار (بیشتر متمرکز بر دات نت) هست که هر هفته سه شنبه ها ساعت 21:00 برگزار میشه
و در آخر ویس ضبط شدش رو همینجا منتشر میکنیم
ویس جلسات قبل رو میتونین با هشتگ #فری_تاک پیدا کنین
___________
@DotNetZoom
💎 خلاصهی مفاهیم کدنویسی تمیز مخصوص NET.
🔰Awesome Clean Code for C# and .NET
https://github.com/thangchung/clean-code-dotnet
___________________
@DotNetZoom
🔰Awesome Clean Code for C# and .NET
https://github.com/thangchung/clean-code-dotnet
___________________
@DotNetZoom
Security_2
DotNetZoom
✅ ویس ضبط شده نهمین گفتگوی فنی #فری_تاک با موضوع Security (قسمت دوم)
ارائه دهندگان : مجتبی تاجیک، محمدجواد ابراهیمی
_________________
@DotNetZoom
ارائه دهندگان : مجتبی تاجیک، محمدجواد ابراهیمی
_________________
@DotNetZoom
DotNetZoom
DotNetZoom – Security_2
✅ مباحث و کلمات کلیدی ایی که در این جلسه از #فری_تاک در موردشون صحبت کردیم
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDOS
- Security of JWT and Refresh Token
- Key Secrets Storage
- Malicious File Upload
- Decompiling, Obfuscate and Deobfuscate
لیست کلیه مواردی که این جلسه قبل و این جلسه در موردشون صحبت کردیم و میکنیم رو میتونین تو لینک زیر مشاهده کنین (میتونین به عنوان چک لیست هم بهش نگاه کنین)
https://www.notion.so/Free-Talk-Security-8ab8909ae77f451abf9f391a0da8b072
🔰لیست آموزش ها جهت مطالعه بیشتر:
افزودن هدرهای Content Security Policy به برنامههای ASP.NET
https://www.dntips.ir/post/1604
تولید هدرهای Content Security Policy توسط ASP.NET Core برای برنامههای Angular
https://www.dntips.ir/post/2706
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
https://www.dotnettips.info/post/2992
افزایش امنیت JWT توسط Refresh Token در ASP NET Core
https://news.1rj.ru/str/DotNetZoom/1027
هک برنامه های دات نتی با dnSpy و de4dot + معرفی ویدئو های آموزش زبان اصلی
https://news.1rj.ru/str/DotNetZoom/1012
OWASP Security Cheat Sheet
https://cheatsheetseries.owasp.org/Glossary.html
OWASP .NET Security Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/DotNet_Security_Cheat_Sheet.html
Configuring CSP using NWebSec
https://docs.nwebsec.com/en/4.1/nwebsec/Configuring-csp.html
Awesome .NET Obfuscator
https://github.com/NotPrab/.NET-Obfuscator
Awesome .NET Deobfuscator
https://github.com/NotPrab/.NET-Deobfuscator
🔰لیست ابزار های معرفی شده:
RateLimit and Throttle
https://www.nuget.org/packages/AspNetCoreRateLimit/
https://www.nuget.org/packages/WebApiThrottle/
File Signature/Type Detector
https://www.nuget.org/packages/FileSignatures/
https://www.nuget.org/packages/myrmec/
https://www.nuget.org/packages/File.TypeChecker/
Key Vault
https://www.nuget.org/packages/VaultSharp/
https://github.com/hashicorp/vault
SRI Hash Generator
https://www.srihash.org/
.NET Decompiler
https://github.com/dnSpy/dnSpy
https://github.com/icsharpcode/ILSpy
https://www.jetbrains.com/decompiler/
https://www.red-gate.com/products/dotnet-development/reflector/
.NET Deobfuscator
https://github.com/de4dot/de4dot
__________________
@DotNetZoom
- CSRF/XSRF
- Open/Unvalidated Redirection
- CSP (Content Security Policy)
- SRI (Subresource Integrity)
- CORS (Cross Origin Resource Sharing)
- DDOS
- Security of JWT and Refresh Token
- Key Secrets Storage
- Malicious File Upload
- Decompiling, Obfuscate and Deobfuscate
لیست کلیه مواردی که این جلسه قبل و این جلسه در موردشون صحبت کردیم و میکنیم رو میتونین تو لینک زیر مشاهده کنین (میتونین به عنوان چک لیست هم بهش نگاه کنین)
https://www.notion.so/Free-Talk-Security-8ab8909ae77f451abf9f391a0da8b072
🔰لیست آموزش ها جهت مطالعه بیشتر:
افزودن هدرهای Content Security Policy به برنامههای ASP.NET
https://www.dntips.ir/post/1604
تولید هدرهای Content Security Policy توسط ASP.NET Core برای برنامههای Angular
https://www.dntips.ir/post/2706
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
https://www.dotnettips.info/post/2992
افزایش امنیت JWT توسط Refresh Token در ASP NET Core
https://news.1rj.ru/str/DotNetZoom/1027
هک برنامه های دات نتی با dnSpy و de4dot + معرفی ویدئو های آموزش زبان اصلی
https://news.1rj.ru/str/DotNetZoom/1012
OWASP Security Cheat Sheet
https://cheatsheetseries.owasp.org/Glossary.html
OWASP .NET Security Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/DotNet_Security_Cheat_Sheet.html
Configuring CSP using NWebSec
https://docs.nwebsec.com/en/4.1/nwebsec/Configuring-csp.html
Awesome .NET Obfuscator
https://github.com/NotPrab/.NET-Obfuscator
Awesome .NET Deobfuscator
https://github.com/NotPrab/.NET-Deobfuscator
🔰لیست ابزار های معرفی شده:
RateLimit and Throttle
https://www.nuget.org/packages/AspNetCoreRateLimit/
https://www.nuget.org/packages/WebApiThrottle/
File Signature/Type Detector
https://www.nuget.org/packages/FileSignatures/
https://www.nuget.org/packages/myrmec/
https://www.nuget.org/packages/File.TypeChecker/
Key Vault
https://www.nuget.org/packages/VaultSharp/
https://github.com/hashicorp/vault
SRI Hash Generator
https://www.srihash.org/
.NET Decompiler
https://github.com/dnSpy/dnSpy
https://github.com/icsharpcode/ILSpy
https://www.jetbrains.com/decompiler/
https://www.red-gate.com/products/dotnet-development/reflector/
.NET Deobfuscator
https://github.com/de4dot/de4dot
__________________
@DotNetZoom
Felony on Notion
Free Talk - Security
Intro (5 Min)
✅ ساخت و اعمال شرط های ِDynamic در NET Core.
اینکه چطور اینکار رو انجام بدیم روش های مختلفی داره و از جنبه های مختلفی میشه بررسیش کرد
در این پست میخوام ابزار ها وکتابخونه های مختلف برای این کار رو معرفی کنم و در آخر یک نمونه پروژه که این کار رو به صورت عملی انجام داده معرفی کنم
🔸برای اعمال شرط به صورت داینامیک روی Linq بهترین کتابخونه اینه
System.Linq.Dynamic.Core (نسخه .NET Core)
System.Linq.Dynamic (نسخه .NET Full Framework)
🔹اگه نمیدونین چیه یا دنبال آموزشش میگردین اینم داکیومنت اش
https://github.com/StefH/System.Linq.Dynamic.Core/wiki/Dynamic-Expressions
🔸برای سمت فرانت اگر به یه پلاگین کوئری ساز داینامیک ترو تمیز نیاز دارین این چیز خوبیه
https://querybuilder.js.org/demo.html
این پلاگین شرط های ساخته شده رو به صورت json ارسال میکنه به سرور، پس سمت سرور باید این شرط ها به Expression های معادلشون ترجمه بشن تا توی دات نت قابل استفاده باشن. این کار با استفاده از Expression Tree قابل انجام هست.
البته لازم نیس خودتون اینکارو بکنین، پروژه زیر قبلا اینکارو انجام داده
🔹اینم نمونه پیاده سازی کامل یه پروژه ASP Core ایی که از همین پلاگین jQuery واسه ساخت شرط های پویا سمت front استفاده کرده و سمت backend هم میاد این شرط ها رو به Expression/Func ترجمه میکنه و اعمال میکنه
در نتیجه میشه شرط هاش توی Linq to Object (که Func میگیره) و همچنین روی ORM ها (که Expression میگیرن) اعمال کرد
https://github.com/castle-it/dynamic-linq-query-builder
🔸این هم ربطی به بالایی ها نداره ولی چیز باحالیه، یه کتابخونه اس که امکانش رو میده توی سی شارپ بتونین شرط های داینامیک ایجاد و بعد خودش اونها روبه Expression تبدیل میکنه
همچنین یه کامپوننت مخصوص WinForms هم داره که این امکان رو میده توی برنامه های ویندوزی توسط UI شرط های پویا بسازین
https://github.com/dbelmont/ExpressionBuilder
___________________
@DotNetZoom
اینکه چطور اینکار رو انجام بدیم روش های مختلفی داره و از جنبه های مختلفی میشه بررسیش کرد
در این پست میخوام ابزار ها وکتابخونه های مختلف برای این کار رو معرفی کنم و در آخر یک نمونه پروژه که این کار رو به صورت عملی انجام داده معرفی کنم
🔸برای اعمال شرط به صورت داینامیک روی Linq بهترین کتابخونه اینه
System.Linq.Dynamic.Core (نسخه .NET Core)
System.Linq.Dynamic (نسخه .NET Full Framework)
🔹اگه نمیدونین چیه یا دنبال آموزشش میگردین اینم داکیومنت اش
https://github.com/StefH/System.Linq.Dynamic.Core/wiki/Dynamic-Expressions
🔸برای سمت فرانت اگر به یه پلاگین کوئری ساز داینامیک ترو تمیز نیاز دارین این چیز خوبیه
https://querybuilder.js.org/demo.html
این پلاگین شرط های ساخته شده رو به صورت json ارسال میکنه به سرور، پس سمت سرور باید این شرط ها به Expression های معادلشون ترجمه بشن تا توی دات نت قابل استفاده باشن. این کار با استفاده از Expression Tree قابل انجام هست.
البته لازم نیس خودتون اینکارو بکنین، پروژه زیر قبلا اینکارو انجام داده
🔹اینم نمونه پیاده سازی کامل یه پروژه ASP Core ایی که از همین پلاگین jQuery واسه ساخت شرط های پویا سمت front استفاده کرده و سمت backend هم میاد این شرط ها رو به Expression/Func ترجمه میکنه و اعمال میکنه
در نتیجه میشه شرط هاش توی Linq to Object (که Func میگیره) و همچنین روی ORM ها (که Expression میگیرن) اعمال کرد
https://github.com/castle-it/dynamic-linq-query-builder
🔸این هم ربطی به بالایی ها نداره ولی چیز باحالیه، یه کتابخونه اس که امکانش رو میده توی سی شارپ بتونین شرط های داینامیک ایجاد و بعد خودش اونها روبه Expression تبدیل میکنه
همچنین یه کامپوننت مخصوص WinForms هم داره که این امکان رو میده توی برنامه های ویندوزی توسط UI شرط های پویا بسازین
https://github.com/dbelmont/ExpressionBuilder
___________________
@DotNetZoom
Telegram
Attach Files
Forwarded from کدهک
آینده توسعه اپلیکیشن های مدرن با دات نت
دات نت 6 و ASP NET Core از همیشه سریعتر شده است و EF Core هم از نظر پرفورمنس در جایگاه خوبی در مقایسه با Dapper و سایر ORM ها قرار گرفته است.
قابلیت Minimal API امکان میدهد اپلیکیشن های کوچک و سبک تحت وب پیاده کنید بدون نیاز به Razor Page یا کنترلر ها که در میکروسرویس و فضای ابری کاربرد زیادی دارد.
در سی شارپ 10 امکان تعریف Namespace گلوبال اضافه شده است و دیگر نیاز نیست در هر فایل using قرار بگیرد. همچنین برای تعریف Namespace دیگر نیاز به تعریف اسکوپ جدا وجود ندارد.
بلیزور مجهز به Hotreload شده و بدون بارگذاری و اجرای مجدد برنامه میتوان تغییرات را مشاهده کرد.
امکان ایزوله کردن CSS و پابلیش پروژه به صورت Shadow در ASP NET Core اضافه شده است.
دات نت 6 به همراه MAUI منتشر میشود که امکان ایجاد اپ با کد و سولوشن یکسان در اندروید،ویندوز و مک را فراهم میکند.
https://youtu.be/GJ_PaRNDe9E
دات نت 6 و ASP NET Core از همیشه سریعتر شده است و EF Core هم از نظر پرفورمنس در جایگاه خوبی در مقایسه با Dapper و سایر ORM ها قرار گرفته است.
قابلیت Minimal API امکان میدهد اپلیکیشن های کوچک و سبک تحت وب پیاده کنید بدون نیاز به Razor Page یا کنترلر ها که در میکروسرویس و فضای ابری کاربرد زیادی دارد.
در سی شارپ 10 امکان تعریف Namespace گلوبال اضافه شده است و دیگر نیاز نیست در هر فایل using قرار بگیرد. همچنین برای تعریف Namespace دیگر نیاز به تعریف اسکوپ جدا وجود ندارد.
بلیزور مجهز به Hotreload شده و بدون بارگذاری و اجرای مجدد برنامه میتوان تغییرات را مشاهده کرد.
امکان ایزوله کردن CSS و پابلیش پروژه به صورت Shadow در ASP NET Core اضافه شده است.
دات نت 6 به همراه MAUI منتشر میشود که امکان ایجاد اپ با کد و سولوشن یکسان در اندروید،ویندوز و مک را فراهم میکند.
https://youtu.be/GJ_PaRNDe9E
❇️ معرفی چندین پروژه Starter Template برای ASP .NET Core و React - Vue - Angular
🔰پروژه های ASP .NET Core + React
▪️https://github.com/bradymholt/aspnet-core-react-template
ASP.NET Core 3.1 / React SPA Template App
▪️https://github.com/NickMaev/react-core-boilerplate
Powerful ASP.NET Core 3 templates with React, true server-side rendering and Docker support
▪️https://github.com/CodAffection/React-CRUD-with-Asp.Net-Core-Web-API
Full Stack React js CRUD with Asp.Net Core Web
▪️https://github.com/microsoft/AspNetCore-React-WebApp
ASP.NET Core backend + React frontend + Entity Framework Core + automated testing
▪️https://github.com/based-ghost/aspnet-core-react-redux-playground-template
SPA template built with ASP.NET Core 5.0 + React + Redux + TypeScript + Hot Module Replacement (HMR)
▪️https://github.com/NetCoreTemplates/react-spa
.NET 5.0 React Create App CLI Bootstrap App
🔰پروژه های ASP .NET Core + Vue
▪️https://github.com/TrilonIO/aspnetcore-Vue-starter
Asp.net Core & Vue.js (ES6) SPA Starter kit - Vuex, webpack, Web API, Docker, and more!
▪️https://github.com/SoftwareAteliers/asp-net-core-vue-starter
ASP.NET Core + Vue.js starter project
▪️https://github.com/danijelh/aspnetcore-vue-typenoscript-template
Template AspNetCore with Vue, Vue router, Vuex, TypeScript, Bulma, Sass and Jest
▪️https://github.com/NetCoreTemplates/vue-spa
.NET 5.0 Vue CLI Bootstrap App
▪️https://github.com/damienbod/AspNetCoreMvcVueJs
ASP.NET Core with Vue.js
▪️https://github.com/based-ghost/aspnet-core-vue-vuex-playground-template
SPA template built with ASP.NET Core 5.0 + Vue + Vuex + TypeScript + Hot Module Replacement (HMR)
🔰پروژه های ASP .NET Core + Angular
▪️https://github.com/TrilonIO/aspnetcore-angular-universal
ASP.NET Core & Angular Universal advanced starter - PWA w/ server-side rendering for SEO, Bootstrap, i18n internationalization, TypeScript, unit testing, WebAPI REST setup, SignalR, Swagger docs, and more!
▪️https://github.com/emonney/QuickApp
ASP.NET Core 3.1 / Angular 9 startup project template with complete login, user and role management. Plus other useful services for Quick Application Development
▪️https://github.com/FabianGosebrink/ASPNETCore-Angular-Ngrx
An ASP.NET Core WebAPI Demo with an Angular Client using Ngrx store and effects and Signalr
▪️https://github.com/jasontaylordev/SecureSpa
ASP.NET Core 3 + Angular 8 + ASP.NET Identity generated using .NET Core SDK
▪️https://github.com/DanWahlin/AngularCLI-ASPNET-Core-CustomersService
Example of integrating Angular with ASP.NET Core RESTful Services
▪️https://github.com/NetCoreTemplates/angular-spa
.NET 5.0 Angular 9 CLI Bootstrap App
________________
@DotNetZoom
🔰پروژه های ASP .NET Core + React
▪️https://github.com/bradymholt/aspnet-core-react-template
ASP.NET Core 3.1 / React SPA Template App
▪️https://github.com/NickMaev/react-core-boilerplate
Powerful ASP.NET Core 3 templates with React, true server-side rendering and Docker support
▪️https://github.com/CodAffection/React-CRUD-with-Asp.Net-Core-Web-API
Full Stack React js CRUD with Asp.Net Core Web
▪️https://github.com/microsoft/AspNetCore-React-WebApp
ASP.NET Core backend + React frontend + Entity Framework Core + automated testing
▪️https://github.com/based-ghost/aspnet-core-react-redux-playground-template
SPA template built with ASP.NET Core 5.0 + React + Redux + TypeScript + Hot Module Replacement (HMR)
▪️https://github.com/NetCoreTemplates/react-spa
.NET 5.0 React Create App CLI Bootstrap App
🔰پروژه های ASP .NET Core + Vue
▪️https://github.com/TrilonIO/aspnetcore-Vue-starter
Asp.net Core & Vue.js (ES6) SPA Starter kit - Vuex, webpack, Web API, Docker, and more!
▪️https://github.com/SoftwareAteliers/asp-net-core-vue-starter
ASP.NET Core + Vue.js starter project
▪️https://github.com/danijelh/aspnetcore-vue-typenoscript-template
Template AspNetCore with Vue, Vue router, Vuex, TypeScript, Bulma, Sass and Jest
▪️https://github.com/NetCoreTemplates/vue-spa
.NET 5.0 Vue CLI Bootstrap App
▪️https://github.com/damienbod/AspNetCoreMvcVueJs
ASP.NET Core with Vue.js
▪️https://github.com/based-ghost/aspnet-core-vue-vuex-playground-template
SPA template built with ASP.NET Core 5.0 + Vue + Vuex + TypeScript + Hot Module Replacement (HMR)
🔰پروژه های ASP .NET Core + Angular
▪️https://github.com/TrilonIO/aspnetcore-angular-universal
ASP.NET Core & Angular Universal advanced starter - PWA w/ server-side rendering for SEO, Bootstrap, i18n internationalization, TypeScript, unit testing, WebAPI REST setup, SignalR, Swagger docs, and more!
▪️https://github.com/emonney/QuickApp
ASP.NET Core 3.1 / Angular 9 startup project template with complete login, user and role management. Plus other useful services for Quick Application Development
▪️https://github.com/FabianGosebrink/ASPNETCore-Angular-Ngrx
An ASP.NET Core WebAPI Demo with an Angular Client using Ngrx store and effects and Signalr
▪️https://github.com/jasontaylordev/SecureSpa
ASP.NET Core 3 + Angular 8 + ASP.NET Identity generated using .NET Core SDK
▪️https://github.com/DanWahlin/AngularCLI-ASPNET-Core-CustomersService
Example of integrating Angular with ASP.NET Core RESTful Services
▪️https://github.com/NetCoreTemplates/angular-spa
.NET 5.0 Angular 9 CLI Bootstrap App
________________
@DotNetZoom
GitHub
GitHub - bradymholt/aspnet-core-react-template: ASP.NET Core 3.1 / React SPA Template App
ASP.NET Core 3.1 / React SPA Template App. Contribute to bradymholt/aspnet-core-react-template development by creating an account on GitHub.