Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 ترامپ گفت رو ژاپن میخواد تعرفه بذاره، ۵ دقیقه بعد نخست وزیر ژاپن گفت یک تریلیون دلار میخوایم تو امریکا سرمایه گذاری کنیم و بیزنسمون رو با امریکا گسترش بدیم 😄
مذاکره ی ترامپ با دوستاش اینجوریه وای به دشمناش!
@TheRaymondDev | @GizmizTel
مذاکره ی ترامپ با دوستاش اینجوریه وای به دشمناش!
@TheRaymondDev | @GizmizTel
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس
- قیمت ۱,۵۰۰,۰۰۰ تومان با تخفیف ۷۵۰,۰۰۰ تومان
https://rayium.ir/course/?p=1247
#ووکامرس
@TheRaymondDev
- قیمت ۱,۵۰۰,۰۰۰ تومان با تخفیف ۷۵۰,۰۰۰ تومان
https://rayium.ir/course/?p=1247
#ووکامرس
@TheRaymondDev
Forwarded from Linuxor ?
لایبری fingerprint.js میآد و تمام ویژگی های مرورگر کاربر رو هش میکنه و یه شناسه منحصر به فرد برای هر کاربر میسازه، که بر خلاف کوکی و سشن حتی توی incognito/private هم ثابته که برای جلوگیری از تقلب و یکتا بودن کاربر میتونین ازش استفاده کنید :
https://github.com/fingerprintjs/fingerprintjs
@Linuxor
https://github.com/fingerprintjs/fingerprintjs
@Linuxor
Forwarded from کانال مهرداد لینوکس
406743664-1f82a5c6-d6ef-4293-aa2f-347113209882.webm
3.9 MB
🔥 نرم افزار isd (interactive systemd) روشی بهتر برای کار با units های systemd
✅ اگر با SystemD آشنایی ندارید اینجا و اینجا قبلا توضیح دادم
🗓 نرم افرار ISD یک TUI است که جستجوی فازی برای units ، پیش نمایش های auto-refreshing ، کار با sudo به صورت هوشمند و یک رابط کاملاً قابل تنظیم برای کاربران حرفه ای و تازه واردان را به طور یکسان ارائه می دهد.
💠 مستندات پروژه :
در اینجا میتوانید دسترسی داشته باشید
💠 نصب :
هم با UV نصب میشه هم با NIX من پیشنهادم AppImage است که تست کنید دوست داشتید نصب کنید
اگر سوالی برای نصب دارید اینجا کلیک کنید
❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility #linux
✅ اگر با SystemD آشنایی ندارید اینجا و اینجا قبلا توضیح دادم
🗓 نرم افرار ISD یک TUI است که جستجوی فازی برای units ، پیش نمایش های auto-refreshing ، کار با sudo به صورت هوشمند و یک رابط کاملاً قابل تنظیم برای کاربران حرفه ای و تازه واردان را به طور یکسان ارائه می دهد.
💠 مستندات پروژه :
در اینجا میتوانید دسترسی داشته باشید
💠 نصب :
هم با UV نصب میشه هم با NIX من پیشنهادم AppImage است که تست کنید دوست داشتید نصب کنید
اگر سوالی برای نصب دارید اینجا کلیک کنید
❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility #linux
Forwarded from Gopher Academy
🔵 عنوان مقاله
Proposal: math/rand/v2 Worked, Let's Do sync/v2!
🟢 خلاصه مقاله:
در تلاش گو برای برقراری تعادل بین نوآوری و ثبات، ایجاد نسخههای 'v2' از بستههای استاندارد به عنوان راهحل ارائه شده است. مقاله تمرکز خود را بر نسخههای جدید بستهها مانند math/rand گذاشته است که توسط ایان به عنوان موفقیت آمیز شناخته شدهر و پیشنهاد میدهد که ابزارهای همگامسازی نیز به روزرسانیهای مشابهی را تجربه کنند. این مقاله از یک ماه بحث و گفتگو سود میبرد که شامل نارضایتیهایی است که در رابطه با رویکرد 'v2' مطرح شدهاند. بحثهای مفصلتر درباره این رویکرد و نحوه پیادهسازی آن بیان شده، که نشان دهنده پیچیدگیها و چالشهای ذاتی در تلاش برای نوسکردن و بهبود بسترهای نرمافزاری بدون قربانی کردن ثبات است.
🟣لینک مقاله:
https://golangweekly.com/link/165329/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Proposal: math/rand/v2 Worked, Let's Do sync/v2!
🟢 خلاصه مقاله:
در تلاش گو برای برقراری تعادل بین نوآوری و ثبات، ایجاد نسخههای 'v2' از بستههای استاندارد به عنوان راهحل ارائه شده است. مقاله تمرکز خود را بر نسخههای جدید بستهها مانند math/rand گذاشته است که توسط ایان به عنوان موفقیت آمیز شناخته شدهر و پیشنهاد میدهد که ابزارهای همگامسازی نیز به روزرسانیهای مشابهی را تجربه کنند. این مقاله از یک ماه بحث و گفتگو سود میبرد که شامل نارضایتیهایی است که در رابطه با رویکرد 'v2' مطرح شدهاند. بحثهای مفصلتر درباره این رویکرد و نحوه پیادهسازی آن بیان شده، که نشان دهنده پیچیدگیها و چالشهای ذاتی در تلاش برای نوسکردن و بهبود بسترهای نرمافزاری بدون قربانی کردن ثبات است.
🟣لینک مقاله:
https://golangweekly.com/link/165329/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
proposal: sync/v2: new package · Issue #71076 · golang/go
Proposal Details The math/rand/v2 package has been successful. Let's consider another v2 package: sync/v2. This is an update of #47657. Background The current sync package provides Map and Pool...
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
۱،چند ابزار عالی که اگر ai engineer هستید خیلی به کارتون میاد:
۱:تبدیل هر وبسایتی به دیتای markdown و llm ready :
Firecrawl.dev
۲:وکتور دیتابیس serverless و دارای پلن رایگان:
upstash.com
۳: دسترسی به gpu با ۳۰ دلار کردیت رایگان
modal.com
۲،چند تا ارائه دهنده که پلن رایگان خوبی برای استفاده از llm ها دارند
برای استفاده از llama خیلی خوبه:
console.groq.com
این دو تقریبا همه مدل های خفن اوپن سورس رو دارند و 1 دلار کردیت رایگان میدن:
fireworks.ai
together.ai
۳، استفاده از کلی مدل هوش مصنوعی به صورت API :
replicate.com
چت بات هوش مصنوعی vercel که v0 هست و برای ساخت دمو های فرانت عالیه
v0.dev
و بمب آخر openrouter که به تمام api llm ها وصلتون میکنه و پرداخت با کریپتو هم داره
openrouter.ai
@DevTwitter | <Mani/>
۱:تبدیل هر وبسایتی به دیتای markdown و llm ready :
Firecrawl.dev
۲:وکتور دیتابیس serverless و دارای پلن رایگان:
upstash.com
۳: دسترسی به gpu با ۳۰ دلار کردیت رایگان
modal.com
۲،چند تا ارائه دهنده که پلن رایگان خوبی برای استفاده از llm ها دارند
برای استفاده از llama خیلی خوبه:
console.groq.com
این دو تقریبا همه مدل های خفن اوپن سورس رو دارند و 1 دلار کردیت رایگان میدن:
fireworks.ai
together.ai
۳، استفاده از کلی مدل هوش مصنوعی به صورت API :
replicate.com
چت بات هوش مصنوعی vercel که v0 هست و برای ساخت دمو های فرانت عالیه
v0.dev
و بمب آخر openrouter که به تمام api llm ها وصلتون میکنه و پرداخت با کریپتو هم داره
openrouter.ai
@DevTwitter | <Mani/>
Forwarded from Future Pulse Persian
درود دوستان عزیز، اگر انتقاد یا پیشنهادی دارید که میتواند به بهبود چنل ها کمک کند، خوشحال میشوم از نظرات شما استفاده کنم. میتوانید از طریق آیدی زیر با من در ارتباط باشید:
@mrbardia72
منتظر نظرات سازندهتان هستم! 😊
@mrbardia72
منتظر نظرات سازندهتان هستم! 😊
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از پر تقاضا ترین مهارت ها deploy کردن مدلهای ماشین لرنینگ توی production هست.
حالا دانشگاه carnegie mellon که شاید بالاترین رنک را در ماشین لرنینگ داشته باشه، یک کورس داره ارائه میده راجع به همین موضوع. این دوره نحوه ساخت، استقرار، اطمینان و نگهداری (build, deploy, assure, and maintain) از محصولات نرمافزاری با مدلهای ماشین لرنینگ را پوشش میدهد. این دوره شامل کل چرخه عمر از یک مدل اولیه ماشین لرنینگ تا یک سیستم کامل مستقر در محیط تولید است. تمام مطالب آموزشی شامل کد، اسلاید و مقاله ها کاملا در دسترس هست.
قدم به قدم با همین کورس برید جلو و آخر دوره مهارتی کسب خواهید کرد که میتونه برای پیدا کردن شغل بعدی بهتون کمک کنه.
@DevTwitter | <Mehdi Allahyari/>
حالا دانشگاه carnegie mellon که شاید بالاترین رنک را در ماشین لرنینگ داشته باشه، یک کورس داره ارائه میده راجع به همین موضوع. این دوره نحوه ساخت، استقرار، اطمینان و نگهداری (build, deploy, assure, and maintain) از محصولات نرمافزاری با مدلهای ماشین لرنینگ را پوشش میدهد. این دوره شامل کل چرخه عمر از یک مدل اولیه ماشین لرنینگ تا یک سیستم کامل مستقر در محیط تولید است. تمام مطالب آموزشی شامل کد، اسلاید و مقاله ها کاملا در دسترس هست.
قدم به قدم با همین کورس برید جلو و آخر دوره مهارتی کسب خواهید کرد که میتونه برای پیدا کردن شغل بعدی بهتون کمک کنه.
@DevTwitter | <Mehdi Allahyari/>
Forwarded from Database Labdon
وقتی Cache بیشتر از این که کمک کنه، دردسر می سازه!
چند وقت پیش روی یه پروژه بزرگ کار می کردم که توش Redis برای کشینگ استفاده می کردیم. همه چیز خوب پیش می رفت تا اینکه یه روز، یه تغییر ظاهرا بی ضرر تو کد باعث شد کش درست Invalid نشه. نتیجه چی شد؟ کاربرا داده های قدیمی رو می دیدن، بعضیا نمی تونستن اطلاعاتشون رو آپدیت کنن، و پشتیبانی حسابی شلوغ شد!
کش توزیع شده یه شمشیر دولبه ست!
از یه طرف، می تونه فشار روی دیتابیس رو کم کنه و سرعت پاسخ گویی رو بالا ببره، ولی از طرف دیگه، اگه درست مدیریت نشه، مشکلاتی مثل:
مشکل Cache Inconsistency – وقتی دیتا تو کش و دیتابیس ناهماهنگ می شه و بعضی کاربرا داده های قدیمی می بینن.
مشکل Cache Stampede – همه درخواست ها همزمان به کش می رسن و فشار زیادی ایجاد می کنن.
مشکل TTL Misconfiguration – تنظیم اشتباه زمان اعتبار کش که باعث می شه یا دیتا زودتر از حد لازم حذف بشه یا تا مدت زیادی به روز نشه.
اون تجربه یه درس مهم بهم داد: کش چیزی نیست که فقط یه بار تنظیمش کنیم و فراموشش کنیم. باید یه استراتژی کش هوشمند داشته باشیم که همیشه بهینه بمونه.
<Hamed Farzanefar/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
چند وقت پیش روی یه پروژه بزرگ کار می کردم که توش Redis برای کشینگ استفاده می کردیم. همه چیز خوب پیش می رفت تا اینکه یه روز، یه تغییر ظاهرا بی ضرر تو کد باعث شد کش درست Invalid نشه. نتیجه چی شد؟ کاربرا داده های قدیمی رو می دیدن، بعضیا نمی تونستن اطلاعاتشون رو آپدیت کنن، و پشتیبانی حسابی شلوغ شد!
کش توزیع شده یه شمشیر دولبه ست!
از یه طرف، می تونه فشار روی دیتابیس رو کم کنه و سرعت پاسخ گویی رو بالا ببره، ولی از طرف دیگه، اگه درست مدیریت نشه، مشکلاتی مثل:
مشکل Cache Inconsistency – وقتی دیتا تو کش و دیتابیس ناهماهنگ می شه و بعضی کاربرا داده های قدیمی می بینن.
مشکل Cache Stampede – همه درخواست ها همزمان به کش می رسن و فشار زیادی ایجاد می کنن.
مشکل TTL Misconfiguration – تنظیم اشتباه زمان اعتبار کش که باعث می شه یا دیتا زودتر از حد لازم حذف بشه یا تا مدت زیادی به روز نشه.
اون تجربه یه درس مهم بهم داد: کش چیزی نیست که فقط یه بار تنظیمش کنیم و فراموشش کنیم. باید یه استراتژی کش هوشمند داشته باشیم که همیشه بهینه بمونه.
<Hamed Farzanefar/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Python Hints
هر 1 دلار
هر 1 گرم طلای ۱۸ عیار
مهمتر از همه؛ این افزایش قیمتهایی که الان روی تجهیزات و مواد غذایی و ... هست رو دقت کنید بهش؛ اینا برای دلار
90000 تومانهر 1 گرم طلای ۱۸ عیار
6525000 تومانمهمتر از همه؛ این افزایش قیمتهایی که الان روی تجهیزات و مواد غذایی و ... هست رو دقت کنید بهش؛ اینا برای دلار
65000 تومان بوده و نه دلار 90000 تومانیForwarded from LearnPOV | لرن پی او وی
🔳 مقایسه Tailwind و Bootstrap
تیلویند | Tailwind
بوت استرپ | Bootstrap
📊 نتیجه گیری
➖➖➖➖➖➖➖➖➖
همونطور که در جریان هستین؛ تیلویند و بوت استرپ دوتا از محبوب ترین فریمورک های css هستن که خیلیا وقتی میخوان یه css فریمورک انتخاب کنن؛ واسه انتخاب یکی از این دوتا توی دوراهی میمونن.
البته که توی چند سال اخیر استفاده از تیلویند افزایش بسیار چشم گیری داشته و محبوبیت بوتاسترپ خیلی کمتر شده و ما میخوایم توی این پست این مسئله رو به طور کامل باز کنیم و ببینیم چه مزیت ها و معایبی دارند هردوشون
تیلویند | Tailwind
مزایا ✅
➊ قابلیت کاستومایز سازی بسیار بالا
➋ فوقالعاده سبک و بهینه، بخاطر ساختارش
➌ یادگیری نسبتاً ساده
➍ پروسه استایلدهی سریع.
معایب ❌
➊ محدودیت در طراحیهای پیچیده
➋ جدا نبودن استایل ها و HTML، که میتونه باعث شلوغ شدن کدها بشه، و خب این مورد توی بوتاسترپ کمتر دیده میشه چپن کامپوننت های از پیش اماده داره
بوت استرپ | Bootstrap
مزایا ✅
➊ وجود کامپوننت های از پیش آماده
➋ وجود grid system برای ریپانسیو سازی
معایب ❌
➊ شباهت زیاد به بقیه سایت هایی که از بوتاسترپ استفاده میکنند و یونیک نبودن
➋ نیاز مند تایم بیشتر برای یونیک کردن کامپوننت ها
➌ حجم بالا و تاثیر منفی بر روی پرفرمونس، به دلیل عدم وجود بهینه سازی های مناسب
البته مورد سوم توی بوتاسترپ ۵ بهتر شده 🔺
📊 نتیجه گیری
از این مقایسه میشه نتیجه گرفت که برای توسعه پروژه هایی که دیزاین منحصر به فردی دارن و در مقیاس بزرگ تری هستن، بهتره که از Tailwind استفاده بشه؛ ولی برای پروژه هایی که تایم کمی دارن و یا دیزاین و پرفورمنس در اولویت نیست، بوت استرپ هم میتونه انتخاب خوبی باشه ✅
#framework #css #tailwind
𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
➖➖➖➖➖➖➖➖➖
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
یه فکت باحال:
هزینه های api مدل gpt 4o mini من هر ماه با تقریبا ۱۵۰ یوزر اکتیو و کلی پیام به صورت مهمان به ماهی کمتر از 0.60$ میرسید.
مدل gpt 4o mini میتونه یه آپشن عالی برای ساختن چت بات های مبتنی بر RAG باشه به خاطر هزینه فوق العاده پایین Input اش.
@DevTwitter | <Mani/>
هزینه های api مدل gpt 4o mini من هر ماه با تقریبا ۱۵۰ یوزر اکتیو و کلی پیام به صورت مهمان به ماهی کمتر از 0.60$ میرسید.
مدل gpt 4o mini میتونه یه آپشن عالی برای ساختن چت بات های مبتنی بر RAG باشه به خاطر هزینه فوق العاده پایین Input اش.
@DevTwitter | <Mani/>
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
Forwarded from Gopher Academy
🔵 عنوان مقاله
How a Malicious Package Exploited Module Proxy Caching for Persistence
🟢 خلاصه مقاله:
محققان حملهای پیچیده در زنجیره تأمین را کشف کردهاند که از روشهای "typosquatting" (تقلید از نام دامنهها با تغییرات اندک املاکی) و "caching" ماژولهای برنامهنویسی Go جهت ماندن نامحسوس در طول چندین سال استفاده میکند. درک این مکانیزم بسیار مهم است، زیرا ممکن است هر فردی با آن مواجه شود. در این روش، مهاجمان با ایجاد بستههای نرمافزاری دارای نامهای بسیار نزدیک به نامهای اصلی و معتبر، توسعهدهندگان نرمافزار را فریب میدهند. هنگامی که توسعهدهندهای از این بستههای جعلی استفاده میکند، کد مخرب به صورت خودکار در نرمافزار او اجرا میشود. این تکنیک از قابلیتهای کش ماژول پروکسی زبان برنامهنویسی Go بهره میبرد تا فعالیتهای مخرب خود را پنهان کند و تشخیص آنها را دشوار سازد.
🟣لینک مقاله:
https://golangweekly.com/link/165328/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How a Malicious Package Exploited Module Proxy Caching for Persistence
🟢 خلاصه مقاله:
محققان حملهای پیچیده در زنجیره تأمین را کشف کردهاند که از روشهای "typosquatting" (تقلید از نام دامنهها با تغییرات اندک املاکی) و "caching" ماژولهای برنامهنویسی Go جهت ماندن نامحسوس در طول چندین سال استفاده میکند. درک این مکانیزم بسیار مهم است، زیرا ممکن است هر فردی با آن مواجه شود. در این روش، مهاجمان با ایجاد بستههای نرمافزاری دارای نامهای بسیار نزدیک به نامهای اصلی و معتبر، توسعهدهندگان نرمافزار را فریب میدهند. هنگامی که توسعهدهندهای از این بستههای جعلی استفاده میکند، کد مخرب به صورت خودکار در نرمافزار او اجرا میشود. این تکنیک از قابلیتهای کش ماژول پروکسی زبان برنامهنویسی Go بهره میبرد تا فعالیتهای مخرب خود را پنهان کند و تشخیص آنها را دشوار سازد.
🟣لینک مقاله:
https://golangweekly.com/link/165328/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Socket
Go Supply Chain Attack: Malicious Package Exploits Go Module...
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
نرم افزار isd (interactive systemd) روشی بهتر برای کار با units های systemd
اگر کار با Systemd براتون سخته حتما استفاده کنید
@DevTwitter | <MehrdadLinux/>
اگر کار با Systemd براتون سخته حتما استفاده کنید
@DevTwitter | <MehrdadLinux/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
به جای استفاده از تولز های درایوری برای داکیومنت کردن کدت برای llm knowledge base بیا از تولزم استفاده کن openai compatible سرعت پشم ریزوم. ایجنت رو تعریف کن بنداز به جون پروزه
https://github.com/ingig/code-narrator
@DevTwitter | <raas/>
https://github.com/ingig/code-narrator
@DevTwitter | <raas/>
Forwarded from Code Module | کد ماژول (genix)
Trust Proxy توی Express.js چیه و دقیقاً چه کاری میکنه؟ 🤔
Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.
حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطهای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار میگیره. Express بهطور پیشفرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.
۲. Trust Proxy به چه دردی میخوره؟
وقتی که برنامه شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو میبینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای
اینجاست که Trust Proxy به درد میخوره 👇🏻
- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.
- req.protocol رو بر اساس X-Forwarded-Proto تنظیم میکنه.
- req.hostname رو درست مقداردهی میکنه
۳. چجوری Trust Proxy رو توی Express فعال کنیم؟
خیلی ساده!
با این تنظیم:
- req.ip مقدار واقعی آیپی کاربر رو میده.
- req.protocol مقدار واقعی http یا https رو نشون میده.
۴. Trust Proxy چه مقدارهایی میگیره؟
مقدار
Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسیای اعتماد نکنید! برای امنیت بیشتر، فقط به آیپیهایی که واقعاً Proxyهای خودتون هستن اجازه بدید.
برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.
#nodejs #express
@CodeModule
Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.
حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطهای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار میگیره. Express بهطور پیشفرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.
۲. Trust Proxy به چه دردی میخوره؟
وقتی که برنامه شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو میبینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای
https مقدار http داشته باشه و کلی مشکل دیگه. اینجاست که Trust Proxy به درد میخوره 👇🏻
- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.
- req.protocol رو بر اساس X-Forwarded-Proto تنظیم میکنه.
- req.hostname رو درست مقداردهی میکنه
۳. چجوری Trust Proxy رو توی Express فعال کنیم؟
خیلی ساده!
const app = express();
app.set("trust proxy", true);
با این تنظیم:
- req.ip مقدار واقعی آیپی کاربر رو میده.
- req.protocol مقدار واقعی http یا https رو نشون میده.
اما... فعال کردنش به این سادگی هم نیست! چون ممکنه سرورهای پراکسی مختلفی جلوی اپلیکیشن باشن و تو نیاز داشته باشی مشخص کنی که به کدوم پراکسیها اعتماد داری.
۴. Trust Proxy چه مقدارهایی میگیره؟
مقدار
true همیشه بهترین گزینه نیست. Express چند مدل مقدار رو قبول میکنه: app.set("trust proxy", false); // پیشفرض، هیچ پراکسیای رو قبول نمیکنه.
app.set("trust proxy", true); // به همه پراکسیها اعتماد میکنه.
app.set("trust proxy", "loopback"); // فقط به 127.0.0.1 اعتماد میکنه.
app.set("trust proxy", "127.0.0.1"); // فقط به این IP خاص اعتماد میکنه.
app.set("trust proxy", ["192.168.1.1", "10.0.0.1"]); // لیستی از پراکسیهای قابلاعتماد.
app.set("trust proxy", 2); // از آخرین دو پراکسی مقدار رو میخونه.- مقدار 2 یعنی چی؟
وقتی مقدار 2 رو میدید، Express میاد ip واقعی کاربر رو از دو پراکسی آخر توی X-Forwarded-For استخراج میکنه. این کار به درد جایی میخوره که چند تا سرور بین کاربر و اپلیکیشن هستن.
- پس مقدار true بدیم یا نه؟
بهتره فقط به پراکسیهایی که میشناسی اعتماد کنید. مثلاً اگه سرور فقط Cloudflare یا Nginx قرار داره، میتونید فقط به اون آیپیها اعتماد کنین تا از IP Spoofing جلوگیری بشه.
Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسیای اعتماد نکنید! برای امنیت بیشتر، فقط به آیپیهایی که واقعاً Proxyهای خودتون هستن اجازه بدید.
برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.
#nodejs #express
@CodeModule
Forwarded from LinAcademy
زندگی مثل یه بازی rpg هستش لول گرفتی اسکیل آپ کن، نگرفتی بازم mob بکش یا quest بزن تا لول بگیری.
این یعنی چی؟
تو باید توی نقشی که داری تاثیر گذار باشی پس شروع می کنی به یادگیری یا پیشرفت، اگه یادگرفتی میری مرحله بعد و اگر یادنگرفتی باید یا موانع سر راحت رو حذف کنی یا بیشتر آموزش ببینی.
@LinAcademy
این یعنی چی؟
تو باید توی نقشی که داری تاثیر گذار باشی پس شروع می کنی به یادگیری یا پیشرفت، اگه یادگرفتی میری مرحله بعد و اگر یادنگرفتی باید یا موانع سر راحت رو حذف کنی یا بیشتر آموزش ببینی.
@LinAcademy
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)