آموزش مقدماتی PHP | دستور prepare در MySQL

دستورات prepare برای جلوگیری از تزریق SQL توسط هکر ها بسیار کاربردی است.

دستورات prepare و پارامتر های محدود کننده

از یک دستور prepare می توان برای اجرای چندین کوئری SQL مشابه استفاده کرد. 

دستورات prepare اساساً به این شکل کار می کنند:

  1. قالب یک کوئری SQL ساخته شده و به دیتابیس ارسال می شود و در آن مقادیر به صورت پارامتر های نامشخص و به شکل ؟ ارسال می شوند. مثال (?, ?, ?) INSERT INTO MyGuests VALUES
  2. دیتابیس بهینه سازی های مربوط به قالب کوئری و تجزیه و تحلیل های لازم را انجام می دهد و نتیجه را بدون اجرای آن ذخیره می کند
  3. کمی بعد، مقادیر مربوط به پارامتر های نامشخص را جایگزین می کند و دستور کوئری را اجرا می کند. هر تعداد باری که نیاز باشد، می توان این کوئری را با مقادیر مختلف اجرا کرد.

در مقایسه با اجرای مستقیم کوئری های SQL، روش prepare سه مزیت دارد:

  • دستورات prepare زمان تجزیه و تحلیل را کاهش می دهند چون آماده سازی هر کوئری را فقط یکبار انجام می دهند، اگر چه چند بار در کد اجرا شوند.
  • استفاده از پارامتر ها باعث کاهش پهنای باند ارسالی به سرور می شوند چراکه هر بار فقط پارامتر ها به سرور ارسال می شوند نه کل کوئری.
  • دستورات prepare برای جلوگیری از حملات تزریق SQL خیلی مفید هستند، چرا که مقادیر پارامتر ها، که با پروتکل متفاوتی بعداً ارسال می شوند، نیازی نیست حتماً از نظر امنیتی اصلاح شوند. اگر قالب اولیه ی کوئری با ورودی خارجی از کاربر گرفته نشده باشد، تزریق SQL نمی تواند رخ دهد.
پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3