Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
🚨 مشکل امنیتی XSS چیه و چطوری جلوی اونو بگیریم؟ 🚨

سلام دوستان! امروز می‌خوایم درباره یکی از خطرناک‌ترین حملات امنیتی وب یعنی XSS (Cross-Site Scripting) صحبت کنیم. این حمله خیلی وقت‌ها دست کم گرفته میشه، ولی می‌تونه خیلی از سایت‌ها رو به مشکل بندازه و اطلاعات کاربران رو به خطر بندازه 😱.

حالا XSS چیه؟ 🤔
خب XSS یه نوع حمله امنیتیه که هکرها توش میان و کدهای مخرب جاوااسکریپت رو توی صفحات وب قرار میدن. این کدها معمولاً از طریق فرم‌ها، URLها یا بخش‌های ورودی دیگه وارد سایت میشه. وقتی این کدها اجرا بشن، هکر می‌تونه اطلاعات حساس کاربرها رو بدزده، کوکی‌ها رو سرقت کنه یا حتی کاربر رو به صفحات مخرب ببره 😬.

انواع XSS 🚦
Stored XSS 🗃️
توی این روش، کد مخرب توی دیتابیس سایت ذخیره میشه. هر بار که کاربر صفحه‌ای رو باز می‌کنه، کد مخرب از دیتابیس خونده میشه و اجرا میشه. این روش خیلی خطرناکه چون ممکنه تعداد زیادی کاربر رو تحت تأثیر قرار بده.

Reflected XSS 🔄
توی این روش، کد مخرب از طریق URL به سرور فرستاده میشه و سرور بدون اینکه فیلترش کنه، اون رو به کاربر برمی‌گردونه. کاربر هم وقتی URL مخرب رو باز کنه، کد جاوااسکریپت اجرا میشه.

DOM-based XSS 🧩
توی این نوع از حمله، کد مخرب مستقیماً توی سمت کلاینت (مرورگر) تزریق و اجرا میشه، بدون اینکه نیاز باشه سرور دخالتی داشته باشه.

چه خطرهایی داره؟ ⚠️

1️⃣ دزدیدن اطلاعات کاربران:
هکرها می‌تونن با استفاده از XSS به اطلاعات حساس کاربرها مثل نام کاربری، پسورد و حتی اطلاعات بانکی دسترسی پیدا کنن.

2️⃣ هک کردن سشن‌ها:
هکر می‌تونه با دزدیدن کوکی‌های سشن کاربر، وارد حسابش بشه و از اون سوءاستفاده کنه.

3️⃣ ری‌دایرکت کردن کاربران به سایت‌های مخرب:
با استفاده از کدهای جاوااسکریپت، کاربر رو به صفحاتی ببره که آلوده به بدافزار یا ویروس هستن.

چطور جلوی XSS رو بگیریم؟ 🛡️
1️⃣ فیلتر کردن ورودی‌های کاربر:
هر ورودی که از کاربر می‌گیری، حتماً باید فیلتر و اعتبارسنجی بشه. نذار کاربر بتونه کدهای جاوااسکریپت یا HTML توی فرم‌ها بنویسه.

2️⃣ ؛Encode کردن خروجی‌ها:
حتماً داده‌هایی که از سرور به کلاینت می‌فرستی رو Encode کن. این کار جلوی اجرا شدن کدهای مخرب جاوااسکریپت رو می‌گیره.

3️⃣ استفاده از CSP (Content Security Policy):
با CSP می‌تونی محدود کنی که کدهای جاوااسکریپت فقط از منابع مطمئن لود بشن و نذاری هکرها کدهای خودشون رو اجرا کنن.

4️⃣ استفاده از کتابخونه‌های امن:
کتابخونه‌هایی مثل DOMPurify برای فیلتر کردن کدهای HTML و جاوااسکریپت از سمت کاربر خیلی مفیدن.

جمع‌بندی 🎯
فهمیدیم XSS یکی از خطرناک‌ترین حملات وبه که اگه جلوی اون رو نگیریم، می‌تونه خسارت‌های زیادی به امنیت سایت بزنه. با فیلتر کردن ورودی‌ها، Encode کردن خروجی‌ها و استفاده از سیاست‌های امنیتی مثل CSP می‌تونیم جلوی این نوع حملات رو بگیریم. پس حتماً حواست به امنیت اپلیکیشنت باشه! 😎

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

@ninja_learn_ir
شرکت lmsys.org وب‌سایت جدیدی برای LLM Jailbreaking راه‌اندازی کرده. در این وب‌سایت شما یک دقیقه وقت دارید تا مدل مربوطه رو مجبور کنید که یک جمله حساس مثل فحش، توهین یا تهدید رو بگه.
جالبه امتحانش کنید:
redarena.ai

@DevTwitter | <Shahriar Shariati/>
Forwarded from 
با توجه به استقبال بی‌نظیر و ثبت‌نام بیش از ۲۰ هزار نفر در دوره‌ی یادگیری ماشین دانشکده‌ی مهندسی کامپیوتر دانشگاه صنعتی شریف، به اطلاع می‌رسانیم که کلاس‌های هفته‌ی نخست در روزهای یکشنبه و سه‌شنبه ۱ و ۳ مهر ساعت ۹ تا ۱۰:۱۵ صبح، به‌صورت زنده از طریق کانال آپارات به نشانی https://www.aparat.com/SharifML/live پخش خواهد شد.

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

از همراهی شما بسیار سپاس‌گزاریم.
Forwarded from Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁

الحمدلله تیمسازی ۳ هم شروع شد 🎉

در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن.
از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه توسعه یک پروژه از مراحل اولیه ش رو کسب میکنن.


دوره +‌ تیمسازی بکند و گولنگ Go Casts
لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان

https://survey.porsline.ir/s/PISsWn7f

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.iss.one/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.iss.one/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4

@gocasts
یه سایت براتون آوردم که باهاش می‌تونید این اشکال خفن رو رو به سادگی ایجاد کنید 🔥🤩

این اشکال درواقع با border-radius ساخته میشن و خودتون به صورت دستی هم میتونید ایجادش کنید ولی مشکلی که وجود داره اینه که خیلی باید تغییرش بدید تا به شکل دلخواهتون برسید و این سایت کارتون رو خیلی ساده کرده


لینک این سایت و ریپازیتوی گیت هابش رو زیر این پست تو چنل براتون میزارم

#️⃣ #website #css #shape

🚀 @coolycode
لینک وبسایت 🔻
https://9elements.github.io/fancy-border-radius/


لینک ریپازیتوری پروژه 🔻
https://github.com/9elements/fancy-border-radius
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 کانال یوتیوب CSharpDesignPro طراحی UI نرم افزار به صورت حرفه ای با C# آموزش می دهد.

https://www.youtube.com/@CSharpDesignPro

#دوره

@TheRaymondDev
Forwarded from Syntax | سینتکس (𝙰𝚖𝚒𝚛𝚑𝚘𝚜𝚜𝚎𝚒𝚗)
📊 Raw Queries and Connection Proxy in Django

🔍 How to Get Raw Queries in ORM

در جنگو، اگر ویژگی .query یک QuerySet را چک کنیم، می‌توانیم پرس‌وجو SQL مربوطه را دریافت کنیم. به عنوان مثال:

from author import models
all_authors = models.Author.objects.filter(email__endswith='@gmail.com').values_list('name').query


خروجی:

SELECT "author_author"."name" FROM "author_author" WHERE "author_author"."email"::text LIKE '%@gmail.com'



⚠️ چالش!

در جستجوهای ORM جنگو، دستورهایی داریم که غیر از QuerySet هستند و استفاده از .query باعث ایجاد خطا می‌شود. به عنوان مثال:

from author import models
author_count = models.Author.objects.filter(email='a').count().queries


خطا:

Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'int' object has no attribute 'query'



🛠 راه‌حل با استفاده از Connection Proxy

برای حل این مشکل، از connection در django.db استفاده می‌کنیم:

from django.db import connection
from author import models

author_count = models.Author.objects.filter(email='a').count()
connection.queries[-1]


خروجی:

{'sql': 'SELECT COUNT(*) AS "__count" FROM "author_author" WHERE "author_author"."email" = \'a\'', 'time': '0.166'}



📌 توجه!

شی connection فقط زمانی نتیجه می‌دهد که سرور جنگو در حالت DEBUG=True در حال اجرا باشد!

📝 نوشتن Debug Queries برای درک Connection Proxy

from django.db import connection
from django.db import reset_queries

def database_debug(func):
def inner_func(*args, **kwargs):
reset_queries()
results = func(*args, **kwargs)
query_info = connection.queries
print(f'function_name: {func.__name__}')
print(f'query_count: {len(query_info)}')
queries = [f'{query["sql"]}\n' for query in query_info]
print(f'queries: \n{"".join(queries)}')
return results
return inner_func


📌 توجه! تابع reset_queries تمام پرس‌وجوهای ذخیره شده در connection را پاک می‌کند!

🔧 استفاده از کد:

@database_debug
def regular_query():
blogs = models.Blog.objects.all()
return [blog.author.name for blog in blogs]


خروجی:

function_name: regular_query
query_count: 4
queries:
SELECT "blog_blog"."id", "blog_blog"."title", "blog_blog"."content", "blog_blog"."author_id"



💡 توضیح کد:

با استفاده از دستور reset_queries تمام پرس‌وجوهای ذخیره شده در connection را حذف می‌کنیم تا فقط کوئری‌های خواسته شده دیباگ شوند. سپس کوئری‌های داخل inner_function که دکوراتور شده‌اند اجرا می‌شوند و شی connection حاوی لیست از پرس‌وجوها می‌شود. بعد از آن، تمام پرس‌وجوها را از connection.queries بازیابی می‌کنیم.


🔗 منبع : کتاب django in productions
Forwarded from Gopher Academy
🔵 عنوان مقاله
FAIR: A Go Library for Serving Resources 'Fairly'

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

🟣لینک مقاله:
https://golangweekly.com/link/159873/web


👑 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
تغییر دادن response در chrome؛

اگر نیاز دارید response که از سرور دریافت میکنید را تغییر بدهید فقط کافی است DevTools را باز کنید و مثل ویدیو زیر دیتای response مورد نظرتان را به آن شکلی که دوست دارید تغییر بدهید، این تغییر در chrome ذخیره میشود و در زمان reload صفحه پایدار میماند.
به طور مثال از این روش میتوان برای تست application و یا ساختن data mock استفاده کرد.


@DevTwitter | <Mohammad Reza M./>
Forwarded from CleverDevs (CleverDevs Ads)
Forwarded from CleverDevs (CleverDevs Ads)
هرماه، تو این کانال به صورت اشتراکی، اکانت chat gpt تهیه میکنم و با دوستایی که مایل باشن، به صورت اشتراکی با هم هزینه اون اکانت رو پرداخت می‌کنیم


این یه فرصت خوب، برای کاهش هزینه هامون و تهیه اکانت chat gpt plus هست

اگه دوست دارید تو این کامیونیتی باشید و با هزینه خیلی کم، اکانت gpt plus داشته باشید،‌ تو اینجا منتظرتونیم👇

https://t.iss.one/+T4cO7OlORGc1Zjc0
به زودی بر روی پارچ سرور، ابزار cockpit که یک محیط تحت‌وب برای مدیریت سرور است به صورت پیشفرض نصب خواهد بود.

به این صورت که بعد از نصب پارچ سرور، برای مدیریت سرور خود تنها کافیست به

your-ip-address:9090

مراجعه کنید.

ابزار cockpit امکان مدیریت داکر، پادمن و بسته‌های نصب شده بر روی سرور شما را دارد.

@ParchLinux
This media is not supported in your browser
VIEW IN TELEGRAM
چجوری سایت سه بعدی بسازیم ... ⁉️🤩

اگر آموزش های بیشتر در مورد سایت های سه بعدی میخواید زیر همین پست براتون میزارم آدرس پیجش رو تو چنل

#️⃣ #3d_website

💢 𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
اگر شما هم مثل من مشکل دارید که وقتی میرید توی سایت medium.com و مقالات اکثرا پریمیوم هست و نمیتونید بخونید، باید بگم که خدا شما رو دوست داشته که این پست رو دیدید.
خب حالا راه حل چیه؟
فقط کافیه لینک مقاله رو توی این سایت بزارید readmedium.com و تمام

@DevTwitter | <Amirreza Heydari/>
یک خبر خوب برای علاقمندان به شعر و ادبیات فارسی!

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

روش نصب:
sudo pacman -Syy
sudo pacman -S saaghar



@ParchLinux