تزریق SQL: تفاوت بین نسخه‌ها

از Secure Coding

سطر ۶: سطر ۶:
 
گاهی اوقات احراز هویت کاربران، نمایش محتوای وبسایت و یا عکس های کاربران در پایگاه داده ذخیره می شود و توسط sql در مسیر های مختلف به کار برده می شود.
 
گاهی اوقات احراز هویت کاربران، نمایش محتوای وبسایت و یا عکس های کاربران در پایگاه داده ذخیره می شود و توسط sql در مسیر های مختلف به کار برده می شود.
 
حال فرض کنید attacker در پرس و جوی sql، دستکاری و یا Inject کند.
 
حال فرض کنید attacker در پرس و جوی sql، دستکاری و یا Inject کند.
در اینجا می گوییم sql injection رخ داده است.[[پرونده:Sql.png]]
+
در اینجا می گوییم sql injection رخ داده است.
 +
[[پرونده:Sql.png]]
 
برای مثال در تصویر بالا attacker به جای مقدار دسته بندی محصولات(Gift)این payload را وارد می کند.
 
برای مثال در تصویر بالا attacker به جای مقدار دسته بندی محصولات(Gift)این payload را وارد می کند.
<syntaxhighlight lang="Python" line start="55">
+
 
 +
<div lang="en" dir="ltr" class="mw-content-ltr">
 +
<syntaxhighlight>
 
' UNION SELECT username, password FROM users--
 
' UNION SELECT username, password FROM users--
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
</div>
  
  
 
[[category:تزریق(Injection)]]
 
[[category:تزریق(Injection)]]

نسخهٔ ‏۱۹ دسامبر ۲۰۱۹، ساعت ۰۷:۳۶

در این نوع از آسیب پذیری های مهاجم می تواند payload خود را در قسمت های مختلف برنامه تزریق کند. از انواع آسیب پذیری های injection می توان به تزریق sql و یا تزریق command اشاره کرد.

1-1- تزریق sql

زبان پرس و جو sql راهی برای مدیریت داده های ذخیره شده در پایگاه داده های رابطه ای است. به این معنا که می توانیم در هر بستری از جمله وب داده هارا ذخیره، ویرایش و یا تغییر دهیم. گاهی اوقات احراز هویت کاربران، نمایش محتوای وبسایت و یا عکس های کاربران در پایگاه داده ذخیره می شود و توسط sql در مسیر های مختلف به کار برده می شود. حال فرض کنید attacker در پرس و جوی sql، دستکاری و یا Inject کند. در اینجا می گوییم sql injection رخ داده است. Sql.png برای مثال در تصویر بالا attacker به جای مقدار دسته بندی محصولات(Gift)این payload را وارد می کند.

' UNION SELECT username, password FROM users--