پرش به محتوای اصلی

وبلاگ رخنه‌کاو

امنیت وب، به زبان قابل اجرا

آنچه در کار روزمره روی سایت‌های واقعی یاد می‌گیریم — بدون بزرگ‌نمایی، بدون ترساندن، و با قدم‌هایی که می‌توانید همین امروز بردارید.

تازه‌ترین مقاله‌ها

آسیب‌پذیری‌های سایت

Race Condition چیست؟ بررسی آسیب‌پذیری شرایط رقابتی در وب‌سایت‌ها

Race Condition یا شرایط رقابتی زمانی رخ می‌دهد که چند عملیات هم‌زمان روی یک State مشترک اجرا شوند و نتیجه برنامه به ترتیب زمانی اجرای آن‌ها وابسته باشد. این آسیب‌پذیری می‌تواند باعث استفاده چندباره از کوپن، ثبت سفارش بیش از موجودی، مشکلات مالی، دورزدن محدودیت‌ها یا ایجاد State ناسازگار شود. استفاده از Atomic Operation، Transaction مناسب، Locking، Unique Constraint، Idempotency و کنترل دقیق Business Logic از مهم‌ترین روش‌های جلوگیری از Race Condition است.

۳۸ دقیقه مطالعه
آسیب‌پذیری‌های سایت

NoSQL Injection چیست؟ بررسی تزریق NoSQL و روش‌های جلوگیری

NoSQL Injection نوعی آسیب‌پذیری تزریق است که در آن ورودی غیرقابل‌اعتماد می‌تواند ساختار یا منطق Query پایگاه داده NoSQL را تغییر دهد. این مشکل به‌ویژه در APIهای JSON و برنامه‌هایی که Query Object یا Operatorهای کنترل‌شده توسط Client را مستقیماً به Database منتقل می‌کنند اهمیت دارد. جلوگیری از NoSQL Injection به Strict Input Validation، ساخت Query در Backend، محدودسازی Operatorها، Schema Validation و Least Privilege نیاز دارد.

۴۰ دقیقه مطالعه
آسیب‌پذیری‌های سایت

امنیت WebSocket چیست؟ بررسی حملات و تنظیمات امنیتی WebSocket

امنیت WebSocket شامل مجموعه‌ای از کنترل‌ها برای محافظت از ارتباط دائمی و دوطرفه میان Client و Server است. استفاده از WSS به تنهایی کافی نیست و ضعف‌هایی مانند Cross-Site WebSocket Hijacking، دسترسی غیرمجاز، Injection، Replay و حملات DoS همچنان ممکن است وجود داشته باشند. بررسی Origin، مدیریت صحیح Session، Authorization در سطح هر پیام، Input Validation، Rate Limiting و Logging از مهم‌ترین راهکارهای افزایش امنیت WebSocket هستند.

۴۲ دقیقه مطالعه
آسیب‌پذیری‌های سایت

امنیت GraphQL چیست؟ مهم‌ترین آسیب‌پذیری‌های GraphQL و روش‌های جلوگیری

امنیت GraphQL به مجموعه روش‌هایی گفته می‌شود که از APIهای GraphQL در برابر دسترسی غیرمجاز، افشای اطلاعات، حملات DoS، Injection، CSRF و سوءاستفاده از Queryهای پیچیده محافظت می‌کنند. مهم‌ترین خطرها شامل ضعف Authorization در سطح Object و Field، Queryهای بدون محدودیت، Batching Abuse و تنظیمات ناامن Production هستند. استفاده از Depth و Complexity Limit، Pagination، Rate Limiting، Input Validation، کنترل دسترسی دقیق و Monitoring از مهم‌ترین راهکارهای افزایش امنیت GraphQL محسوب می‌شوند.

۳۷ دقیقه مطالعه
آسیب‌پذیری‌های سایت

Prototype Pollution چیست؟ بررسی آسیب‌پذیری Prototype در JavaScript و Node.js

Prototype Pollution نوعی آسیب‌پذیری در JavaScript است که باعث می‌شود Propertyهای غیرمجاز وارد Prototype Chain شوند و رفتار Objectهای دیگر را تغییر دهند. این ضعف در Browser و Node.js می‌تواند با Gadgetهای مختلف به مشکلاتی مانند دور زدن کنترل دسترسی، DOM XSS، تغییر Configuration یا اختلال در سرویس منجر شود. Schema Validation، محدود کردن Dynamic Propertyها، استفاده از Object.hasOwn()، Map یا Null-Prototype Object و به‌روزرسانی Dependencyها از مهم‌ترین راهکارهای جلوگیری از Prototype Pollution هستند.

۳۹ دقیقه مطالعه
آسیب‌پذیری‌های سایت

Web Cache Deception چیست؟ چگونه اطلاعات کاربران از طریق Cache افشا می‌شود؟

Web Cache Deception زمانی ایجاد می‌شود که Cache یک Response شخصی و داینامیک را به دلیل تفسیر اشتباه URL، به‌عنوان محتوای عمومی ذخیره کند و آن را در اختیار کاربران دیگر قرار دهد. این ضعف معمولاً از اختلاف میان Path Mapping، URL Normalization یا Cache Rule در CDN و Origin Server ناشی می‌شود و می‌تواند اطلاعات حساب، سفارش‌ها یا داده‌های شخصی کاربران را افشا کند.

۴۱ دقیقه مطالعه
آسیب‌پذیری‌های سایت

Web Cache Poisoning چیست؟ بررسی مسموم‌سازی کش سایت و روش‌های جلوگیری

Web Cache Poisoning زمانی رخ می‌دهد که مهاجم بتواند Response دستکاری‌شده‌ای را زیر یک Cache Key عمومی ذخیره کند تا همان محتوا بعداً به کاربران دیگر تحویل داده شود. ریشه این ضعف معمولاً اختلاف میان Inputهایی است که Backend برای تولید Response پردازش می‌کند و Inputهایی که Cache در Cache Key لحاظ می‌کند. شناسایی Unkeyed Inputها، تنظیم صحیح Cache-Control و Vary، محدود کردن Cache صفحات حساس و هماهنگ‌سازی Cache Key با رفتار واقعی Application از مهم‌ترین روش‌های جلوگیری از Web Cache Poisoning هستند.

۴۴ دقیقه مطالعه
آسیب‌پذیری‌های سایت

Open Redirect چیست؟ بررسی آسیب‌پذیری ریدایرکت باز و خطرات آن

Open Redirect یا ریدایرکت باز زمانی ایجاد می‌شود که یک وب‌سایت مقصد انتقال کاربر را از داده قابل‌کنترل Client دریافت کند و بدون اعتبارسنجی کافی به همان مقصد Redirect شود. این ضعف می‌تواند برای Phishing استفاده شود و در بعضی سناریوها به بخشی از زنجیره حملات OAuth یا دور زدن کنترل‌های مبتنی بر Domain تبدیل شود. جلوگیری از دریافت URL Arbitrary، استفاده از Server-Side Mapping، Allowlist دقیق مقصدها و Validation صحیح Scheme و Host از مهم‌ترین روش‌های جلوگیری از Open Redirect هستند.

۳۸ دقیقه مطالعه
آسیب‌پذیری‌های سایت

امنیت OAuth چیست؟ آسیب‌پذیری‌های OAuth 2.0 و روش‌های پیاده‌سازی امن

امنیت OAuth مجموعه کنترل‌هایی است که از فرایند صدور و استفاده از مجوزهای OAuth 2.0 و Tokenهای دسترسی محافظت می‌کند. ضعف در Redirect URI، PKCE، Scope، Audience، State یا مدیریت Access و Refresh Token می‌تواند به سرقت Token، دور زدن Authorization یا دسترسی غیرمجاز به API منجر شود. استفاده از Authorization Code همراه با PKCE، اعتبارسنجی دقیق Redirect و Issuer، محدود کردن Tokenها و محافظت در برابر Replay از مهم‌ترین اصول پیاده‌سازی امن OAuth هستند.

۴۴ دقیقه مطالعه