نقش CORB در جلوگیری از نشت ریسپانسهای Cross‑Origin
توی این پست در مورد دو تا مکانیزم امنیتی مرورگر صحبت کردم: اولی
جزئیات CORB رو از اینجا میتونید بخونید:
https://www.chromium.org/Home/chromium-security/corb-for-developers/
@techstuff100
توی این پست در مورد دو تا مکانیزم امنیتی مرورگر صحبت کردم: اولی
nosniff که جلوی اشتباه گرفتن نوع فایل رو میگیره و مانع اجرای کد مخرب میشه. دومی CORB که وقتی یه سایت مخرب با تگهایی مثل <img> سعی میکنه اطلاعات حساس یه سایت دیگه (مثل JSON یا HTML) رو دانلود کنه، کل ریسپانس رو خالی میکنه و نمیذاره اون داده اصلا به مرورگر برسه. جزئیات CORB رو از اینجا میتونید بخونید:
https://www.chromium.org/Home/chromium-security/corb-for-developers/
@techstuff100
❤6
تجربه مصاحبه Backend Engineer در Canva استرالیا
مصاحبهشونده از طریق لینکدین برای موقعیت Backend Engineer در دفتر سیدنی Canva اپلای کرد. چالش اصلی براش پروسه فشرده مصاحبهها بود:
۱. مصاحبه با ریکروتر (۳۰ دقیقه): تمرکز روی تجربهها و انگیزه.
۲. مصاحبه تکنیکال (۶۰ دقیقه): شبیهسازی یک دیتابیس با توابع create/get/list روی HashMap.
دور نهایی در روز دوم:
۳. بررسی کد (۴۵ دقیقه): review کد تایپاسکریپت در یک فایل گوگل داک و بحث thread safety/performance.
۴. طراحی سیستم (۴۵ دقیقه): طراحی سیستم پرداخت subscription با تمرکز روی کامپوننتها و APIها در Google Doc.
۵. تسلط به زبان برنامهنویسی (۴۵ دقیقه): ساخت in-memory cache با استفاده از primitiveهای جاوا، مدیریت collision و نوشتن تست.
۶. رهبری، ارتباطات و استراتژی (۴۵ دقیقه): سناریوهای رفتاری مثل کانفلیکتها و شکستها با جزئیات فنی.
۷. تیممچینگ (۶۰ دقیقه): معرفی تیم، چالشها، KPIها و سؤال از tech stack مثل AWS.
در نهایت offer رقابتی بعد چند تماس. مصاحبهشونده اشاره میکنه که توی این فرایند recruiterها انعطافپذیر و پاسخگو بودن.
لینک مقاله
@techstuff100
مصاحبهشونده از طریق لینکدین برای موقعیت Backend Engineer در دفتر سیدنی Canva اپلای کرد. چالش اصلی براش پروسه فشرده مصاحبهها بود:
۱. مصاحبه با ریکروتر (۳۰ دقیقه): تمرکز روی تجربهها و انگیزه.
۲. مصاحبه تکنیکال (۶۰ دقیقه): شبیهسازی یک دیتابیس با توابع create/get/list روی HashMap.
دور نهایی در روز دوم:
۳. بررسی کد (۴۵ دقیقه): review کد تایپاسکریپت در یک فایل گوگل داک و بحث thread safety/performance.
۴. طراحی سیستم (۴۵ دقیقه): طراحی سیستم پرداخت subscription با تمرکز روی کامپوننتها و APIها در Google Doc.
۵. تسلط به زبان برنامهنویسی (۴۵ دقیقه): ساخت in-memory cache با استفاده از primitiveهای جاوا، مدیریت collision و نوشتن تست.
۶. رهبری، ارتباطات و استراتژی (۴۵ دقیقه): سناریوهای رفتاری مثل کانفلیکتها و شکستها با جزئیات فنی.
۷. تیممچینگ (۶۰ دقیقه): معرفی تیم، چالشها، KPIها و سؤال از tech stack مثل AWS.
در نهایت offer رقابتی بعد چند تماس. مصاحبهشونده اشاره میکنه که توی این فرایند recruiterها انعطافپذیر و پاسخگو بودن.
لینک مقاله
@techstuff100
❤5👍1
ماژولهای Shallow و Deep
توی این پست درباره تفاوت نگاه کتابهای Clean Code و A Philosophy of Software Design به shallow یا deep بودن ماژولها صحبت کردم. این مقایسه کمک میکنه بفهمیم همیشه خرد کردن کد به معنی سادهتر شدن سیستم نیست؛ یه trade off بین «خوانایی کد» و «پیچیدگی کل سیستم» هستش.
#A_Philosophy_of_Software_Design
#Clean_Code
@techstuff100
توی این پست درباره تفاوت نگاه کتابهای Clean Code و A Philosophy of Software Design به shallow یا deep بودن ماژولها صحبت کردم. این مقایسه کمک میکنه بفهمیم همیشه خرد کردن کد به معنی سادهتر شدن سیستم نیست؛ یه trade off بین «خوانایی کد» و «پیچیدگی کل سیستم» هستش.
#A_Philosophy_of_Software_Design
#Clean_Code
@techstuff100
❤7🔥1
مرورگرها خودشون قبل از هر CSSی که ما بنویسیم، یک سری استایل پیشفرض روی همه المنتها اعمال میکنن. برای همین h1 از h2 بزرگتره، لینکها آبیان و ... .
از این لینک میتونین استایلهای پیشفرض مرورگر Chromium رو بررسی کنین.
@techstuff100
از این لینک میتونین استایلهای پیشفرض مرورگر Chromium رو بررسی کنین.
@techstuff100
❤9🔥1
مفهوم inode در UNIX
توی این پست درباره inode و نقش اون در فایلسیستمهای UNIX صحبت کردم. اینکه فایلها واقعا چطور ذخیره میشن، چرا inode وجود داره و چطور ممکنه سیستم با وجود داشتن فضای خالی، به خاطر تمام شدن inodeها دیگه نتونه فایل جدید بسازه.
@techstuff100
توی این پست درباره inode و نقش اون در فایلسیستمهای UNIX صحبت کردم. اینکه فایلها واقعا چطور ذخیره میشن، چرا inode وجود داره و چطور ممکنه سیستم با وجود داشتن فضای خالی، به خاطر تمام شدن inodeها دیگه نتونه فایل جدید بسازه.
@techstuff100
❤2👍1🔥1
کد ۳۰۱ و ۳۰۲: ریدایرکت
وقتی یک URL قراره کاربر رو به آدرس دیگهای هدایت (redirect) کنه، معمولا با یکی از status codeهای 301 یا 302 این کار انجام میشه.
در 301 (Moved Permanently)، به مرورگر گفته میشه که این آدرس برای همیشه جابهجا شده. به همین خاطر مرورگر میتونه نتیجه رو cache کنه و دفعات بعدی مستقیما به آدرس جدید بره، بدون اینکه دوباره به آدرس قبلی درخواست بزنه.
اما 302 (Found) برای جابهجایی موقتی استفاده میشه. در این حالت مرورگر همچنان درخواستهای بعدی رو به آدرس اولیه ارسال میکنه و سرور هر بار مشخص میکنه کاربر به کجا هدایت بشه.
همین تفاوت ساده میتونه روی رفتار سیستم تاثیر بذاره.
اگر هدف کاهش تعداد درخواستها و کمتر شدن بار روی سرور باشه، 301 انتخاب مناسبیه. چون فقط اولین درخواست یک URL به سرور اصلی میره. ولی اگر نیاز داریم هر بار درخواست از سرور عبور کنه تا مثلا آمار کلیکها یا منبع ترافیک ثبت بشه، 302 گزینه بهتریه.
یکی از کاربردهای URL redirecting توی سرویسهای کوتاهکننده لینکه. در پاسخ این درخواستها معمولا هدر location آدرسی رو مشخص میکنه که کاربر باید به اون ریدایرکت بشه.
@techstuff100
وقتی یک URL قراره کاربر رو به آدرس دیگهای هدایت (redirect) کنه، معمولا با یکی از status codeهای 301 یا 302 این کار انجام میشه.
در 301 (Moved Permanently)، به مرورگر گفته میشه که این آدرس برای همیشه جابهجا شده. به همین خاطر مرورگر میتونه نتیجه رو cache کنه و دفعات بعدی مستقیما به آدرس جدید بره، بدون اینکه دوباره به آدرس قبلی درخواست بزنه.
اما 302 (Found) برای جابهجایی موقتی استفاده میشه. در این حالت مرورگر همچنان درخواستهای بعدی رو به آدرس اولیه ارسال میکنه و سرور هر بار مشخص میکنه کاربر به کجا هدایت بشه.
همین تفاوت ساده میتونه روی رفتار سیستم تاثیر بذاره.
اگر هدف کاهش تعداد درخواستها و کمتر شدن بار روی سرور باشه، 301 انتخاب مناسبیه. چون فقط اولین درخواست یک URL به سرور اصلی میره. ولی اگر نیاز داریم هر بار درخواست از سرور عبور کنه تا مثلا آمار کلیکها یا منبع ترافیک ثبت بشه، 302 گزینه بهتریه.
یکی از کاربردهای URL redirecting توی سرویسهای کوتاهکننده لینکه. در پاسخ این درخواستها معمولا هدر location آدرسی رو مشخص میکنه که کاربر باید به اون ریدایرکت بشه.
@techstuff100
❤6👍3🔥2
Tech Stuff
حال خوب برای مامان باباها ❤️ تو تعطیلات عید فرصت شد یه آپدیت جدید برای اپلیکیشن «حال خوب / Good Mood» آماده کنم؛ با یه قابلیت تازه: حالت والدین. با فعالسازی این قابلیت روی گوشی مامان یا بابا، براشون پیامهایی مثل «مامانجون، صبح بخیر قلب من» و «شب بخیر…
«حال خوب | Good Mood» نسخه ۲
از آخرین آپدیت Good Mood یک سال و خردهای گذشته و فرصت رسیدگی بهش رو پیدا نکردم. توی این مدت از کاربران برنامه ایمیل گرفتم؛ بعضی قابلیت جدید میخواستن و بعضی هم باگهای برنامه رو گزارش میدادن.
پس یه دستی به سر و روش کشیدم و نسخه ۲ حال خوب رو منتشر کردم. این بار علاوه بر همون پیامهای صبحبخیر و شببخیر و حالت والدین، قابلیت جدیدی اضافه کردم به اسم پیگیری عادتها:
میتونیم از بین لیست عادتهای مفید (مثل مطالعه کتاب، ورزش، رشد فردی و ...) انتخاب کنیم، روز و ساعت دلخواه رو برای یادآوری تنظیم کنیم و ببینیم هر عادت رو چند بار تکمیل کردیم و چقدر توی مسیر پیشرفت هستیم.
همینطور ظاهر برنامه کامل عوض شده، تم جدید اومده، و حالا میشه پیامهای انگیزشی روزانه رو داخل خود اپ هم دید (فقط نوتیف نباشه). باگها هم رفع شدن.
ممنونم از همه کسانی که نصب کردن و فیدبک دادن.
نصب «حال خوب» از بازار:
http://cafebazaar.ir/app/?id=com.seyedmahdii.goodmood&ref=share
@techstuff100
از آخرین آپدیت Good Mood یک سال و خردهای گذشته و فرصت رسیدگی بهش رو پیدا نکردم. توی این مدت از کاربران برنامه ایمیل گرفتم؛ بعضی قابلیت جدید میخواستن و بعضی هم باگهای برنامه رو گزارش میدادن.
پس یه دستی به سر و روش کشیدم و نسخه ۲ حال خوب رو منتشر کردم. این بار علاوه بر همون پیامهای صبحبخیر و شببخیر و حالت والدین، قابلیت جدیدی اضافه کردم به اسم پیگیری عادتها:
میتونیم از بین لیست عادتهای مفید (مثل مطالعه کتاب، ورزش، رشد فردی و ...) انتخاب کنیم، روز و ساعت دلخواه رو برای یادآوری تنظیم کنیم و ببینیم هر عادت رو چند بار تکمیل کردیم و چقدر توی مسیر پیشرفت هستیم.
همینطور ظاهر برنامه کامل عوض شده، تم جدید اومده، و حالا میشه پیامهای انگیزشی روزانه رو داخل خود اپ هم دید (فقط نوتیف نباشه). باگها هم رفع شدن.
ممنونم از همه کسانی که نصب کردن و فیدبک دادن.
نصب «حال خوب» از بازار:
http://cafebazaar.ir/app/?id=com.seyedmahdii.goodmood&ref=share
@techstuff100
❤8👍5👏2
آسیبپذیری Path Traversal؛ دسترسی به فایلهای غیرمجاز
توی این پست درباره آسیبپذیری Path Traversal صحبت کردم. این آسیبپذیری زمانی اتفاق میفته که ورودی کاربر روی مسیر فایلهای سرور تاثیر بذاره و اعتبارسنجی درستی انجام نشه.
#cyber_security
@techstuff100
توی این پست درباره آسیبپذیری Path Traversal صحبت کردم. این آسیبپذیری زمانی اتفاق میفته که ورودی کاربر روی مسیر فایلهای سرور تاثیر بذاره و اعتبارسنجی درستی انجام نشه.
#cyber_security
@techstuff100
❤15