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

دسته

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

معرفی آسیب‌پذیری‌های رایج وب‌سایت و روش‌های شناسایی و کاهش ریسک آن‌ها.

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

Mass Assignment چیست؟ بررسی آسیب‌پذیری تخصیص انبوه در API و وب‌اپلیکیشن

آسیب‌پذیری Mass Assignment یا تخصیص انبوه زمانی رخ می‌دهد که API یا وب‌اپلیکیشن بدون محدودسازی مناسب، داده‌های کاربر را مستقیماً به Propertyهای Object داخلی متصل کند. این ضعف می‌تواند باعث تغییر غیرمجاز اطلاعات حساسی مانند نقش کاربر، مالکیت، وضعیت تأیید، اطلاعات مالی یا Tenant شود. استفاده از DTO، Allowlist، Mapping صریح، Property-Level Authorization و Schema Validation از مهم‌ترین روش‌های پیشگیری از آسیب‌پذیری Mass Assignment هستند.

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

امنیت بازیابی رمز عبور؛ چگونه Reset Password سایت را امن طراحی کنیم؟

امنیت بازیابی رمز عبور به طراحی فرایندی اشاره دارد که فقط مالک واقعی حساب بتواند از طریق آن Password جدید تعیین کند. Token قابل حدس، User Enumeration، لینک بازیابی ناامن و باقی ماندن Sessionهای قبلی می‌توانند Reset Password را به مسیر Account Takeover تبدیل کنند. استفاده از Token تصادفی، یک‌بارمصرف و محدود به زمان، Rate Limiting، HTTPS، مدیریت Session و Notification امنیتی از مهم‌ترین اصول امنیت بازیابی رمز عبور هستند.

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

Session Fixation چیست؟ تفاوت آن با Session Hijacking و روش‌های جلوگیری

Session Fixation یا تثبیت نشست زمانی رخ می‌دهد که کاربر با Session ID از پیش شناخته‌شده وارد حساب شود و وب‌سایت پس از Authentication شناسه جدیدی ایجاد نکند. تفاوت اصلی آن با Session Hijacking این است که در Hijacking معمولاً Session معتبر کاربر پس از Login سرقت می‌شود، اما در Fixation شناسه پیش از ورود مشخص است.

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

DOM Clobbering چیست؟ بررسی یکی از آسیب‌پذیری‌های کمتر شناخته‌شده JavaScript

DOM Clobbering یک آسیب‌پذیری Client-Side است که از رفتار Named Properties مرورگر و عناصر دارای id یا name برای تحت تأثیر قرار دادن متغیرها و Propertyهای JavaScript استفاده می‌کند. این ضعف در صورت ترکیب با HTML کنترل‌شده و کد ناامن می‌تواند به تغییر رفتار برنامه، Open Redirect و حتی زنجیره‌های منتهی به XSS منجر شود. استفاده از HTML Sanitization، ES Modules، Type Checking، CSP و حذف وابستگی به Global Variableهای window و document از مهم‌ترین راهکارهای جلوگیری از DOM Clobbering هستند.

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

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 هستند.

۳۹ دقیقه مطالعه