به نظر می رسد که شما چندین مسائل مختلف را در شرایط امنیتی از بین می برید. برخی از مسائل مربوط به استفاده از پارامترهای GET وجود دارد، اگر چه این به طور خاص به تزریق SQL مربوط نمی شود و تنها با استفاده از درخواست های POST نمی توان از تزریق SQL جلوگیری کرد.
اکثر نگرانی های مربوط به درخواست های GET از دسترسی غیرمستقیم به داده ها است: به عنوان مثال ، پارامترهای GET را می توان در سابقه مرورگر مشاهده کرد و در پردازنده های جانبی سرور ذخیره می شود بدون پردازش های اضافی. از سوی دیگر، درخواستهای POST معمولا در تاریخچه مرورگر بدون هیچ مقدار پارامتری نشان داده میشوند و سرورهای گزارش معمولا شامل نکردن درخواستها نیستند.
SQLi از سوی دیگر، نتیجه استفاده از دادههای نامشخص در متن درخواست SQL مهم نیست که کدام داده ها از کدام داده ها استفاده می کنند: درخواست GET، درخواست POST، سیستم پشتی دیگر، کوکی ها، پایگاه داده خود.
عموما خوب است که روش های درخواست خاص را به شدت اجرا کنید، اما بیشتر درباره اجتناب از انواع دیگر نقص (نسخه های قدیمیتر پی اچ پی متغیرهای GET و POST را ادغام می کنند، به عنوان مثال، در نتیجه مشکلی که در آن ارزش های مورد نظر را می توان با ارائه یک پارامتر وارد شده توسط مشتری از نوع دیگری، رونویسی کرد). یک پارادایم برای این است دنبال روش REST (https://restfulapi.net/http-methods/) که هر کدام از روش HTTP به یک نوع اقدام به نقشه می پردازد، بنابراین درخواست های GET فقط بازیابی داده ها، درخواست های POST ایجاد داده ها، درخواست های PUT درخواست های به روز رسانی و DELETE درخواست داده ها را حذف می کند، اما این کار همیشه برای تمام برنامه ها معنی ندارد (مثلا جایی که درخواست های PUT / DELETE به دلایلی امکان پذیر نیست).
