‹ بازگشت به کتابخانه‌ی مقالات OWASP Top 10:2025

A05:2025 — Injection؛ همچنان ریشه‌ای‌ترین کلاس آسیب‌پذیری وب

SQL Injection، Command Injection، XXE و SSTI — همه یک داستان مشترک دارند: اعتماد بیش از حد به ورودی کاربر.

Injection یک خانواده‌ی کامل از آسیب‌پذیری‌ها را پوشش می‌دهد که همگی یک الگوی مشترک دارند: ورودی کاربر بدون جداسازی کافی از «دستور» یا «کوئری» در یک مفسر (SQL، shell، XML parser، template engine) قرار می‌گیرد و به‌جای داده، به‌عنوان کد تفسیر می‌شود.

چرا بعد از این‌همه سال هنوز رتبه‌ی بالا دارد

چون این الگو در هر زبان و فریم‌ورک جدید دوباره تکرار می‌شود؛ هر بار یک تیم تازه با یک تکنولوژی جدید کار می‌کند، همان اشتباه classic (رشته‌چینی ورودی کاربر در یک کوئری/دستور) دوباره رخ می‌دهد.

یک قاعده‌ی طلایی

هرجا ورودی کاربر وارد یک مفسر می‌شود، باید با API مخصوص جداسازی داده از کد (Prepared Statements برای SQL، API آرگومان‌جدا برای shell) پردازش شود — نه رشته‌چینی و نه فیلتر کلمات کلیدی.

PentesterHub هفت دسته‌ی مجزا از این خانواده (SQLi، Command Injection، XXE، SSTI و غیره) را با آزمایشگاه عملی پوشش می‌دهد.