Junior⏱ 10 دقیقه1 بخش · 3 نکته
مرور سریع SQL Injection
یکی از قدیمیترین و خطرناکترین آسیبپذیریهای وب و راه قطعی جلوگیری از آن.
0 از 3 نکته مرور شد0٪
فهرست بخشها
مکانیزم حمله و دفاع قطعی0/3
چرا این حمله رخ میدهد و چطور کاملاً حذف میشود.
sql\n-- ورودی مخرب: OR 1=1 --\nSELECT * FROM Users WHERE Username = <ورودی کاربر>\n
💡 نکتهٔ مصاحبه:
مثال کلاسیک «OR 1=1» را حتماً برای مصاحبه آماده داشته باشید — نشان میدهد چطور شرط WHERE همیشه True میشود.
csharp\nconnection.Query<User>(""SELECT * FROM Users WHERE Username = @u"", new { u = username });\n
⚠️ اشتباه رایج:
اعتماد به Escape کردن دستی کاراکترهای خاص بهجای استفادهٔ مستقیم از پارامتر — این روشها ناقص و شکنندهاند.
💡 نکتهٔ مصاحبه:
اگر پرسیدند آیا EF Core کاملاً در برابر SQL Injection ایمن است، بگویید بله تا وقتی از LINQ استاندارد استفاده کنید، ولی FromSqlRaw با Concatenation دستی همچنان خطرناک است.
