نوع استدلال در اینجا باید در تزریق SQL نقش نداشته باشد و سپس این که چگونه پرس و جو SQL در وهله اول شکل گرفته است.
SQL injection سوء استفاده SQL Query که از پارامتر به عنوان یک رشته ایجاد شده است. وب سرور تمام نشانی اینترنتی را به عنوان یک متن پردازش می کند و تمام پارامترها را به عنوان رشته نیز تجزیه می کند. بنابراین حتی زمانی که عدد عددی مانند 1 است، آن را توسط یک سرور وب به عنوان رشته و کد در نظر گرفته می شود و سپس آن را به عنوان یک رشته وارد می کند. این اجازه می دهد تا شما را به وارد کردن کاراکتر های خاص، که ممکن است اگر تنها اعداد مجاز بود ممکن است.
با این حال، ممکن است در پرس و جو SQL وجود دارد. هنگام استفاده از رشته در یک پرس و جو SQL، رشته باید در نقل قول ها '
محصور شود. اعداد می توانند، اما لازم نیست.
شماره: SELECT * از آزمون WHERE id = $ NUMBER؛
String: SELECT * FROM Test WHERE id = '$ TEXT؛'؛
هنگامی که یک رشته در نقل قول بسته است، ابتدا باید ابتدا قاعده را ببندید. بنابراین برای مثال شما می توانید A 'ارسال کنید؛ DROP TABLES *؛ -
که به شما می دهد:
SELECT * از تست WHERE id = 'A'؛ جداول قطره *؛ - '
.
شما می توانید "پایان دادن به اولین" را ببینید، به طوری که دستور DROP TABLES *؛
به عنوان یک فرمان و نه به عنوان متن در نظر گرفته می شود. – برای نظر در SQL استفاده می شود و در اینجا از آن برای خلاص شدن از بسته شدن '
استفاده می کنیم. در غیر این صورت، یک query SQL نادرست ایجاد می شود.
لطفا توجه داشته باشید که اعداد همچنین می توانند از نقل قول در پرس و جو استفاده کنند، بنابراین با استفاده از این روش فرار ممکن است مفید باشد حتی اگر سایت فقط از اعداد در پارامتر. همچنین، بسته به موتور SQL، انواع دیگر نقل قولها و سپس نقل قول های تک، مانند نقل قول های دوگانه ممکن است قابل استفاده باشد، که می تواند چگونگی فرار از آنها را تغییر دهد.