جلوگیری از حملات (Sql injection) برای درگاه پرداخت ها و متد Post در زبان PHP

اگر شما در متد دریافتی از درگاه های پرداخت یا هر سرویس دیگر متدی به عنوان key نداشته باشید به راحتی خود را در مقابل حملات Sql injection کاملا بی دفاع گذاشته اید ! به این نحو از منبع ناشناسی در صورت داشتان شناسه مقادیر ارسالی می توانند مقدار دلخواه شما را به دیتابیس شما تزریق کند .

خب راه حل چیست ؟ اگر درگاه پرداخت از یک key استفاده نمی کرد و یا متد ارسال خود رمزنگاری نمیکرد چه ؟

راه حل که پیش روی ما هست و یک متد ابتکاری است که می توانید از طریق آن حدود ۹۰ درصد خود را از این حملات در امان بدارید :

در دستور بالا ما چک می کنیم که متد post ارسالی  از چه منبعی ارسال شده و اگر از هر منبعی به جز perfectmoney.is باشد دستور اصلا پردازش نمی شود .

این پست حاصل تجره من و دوست بسیار خوبم مهندس رضا جباری ظهیر آبادی (مدیر سایت PADPRO) می باشد .

درباره نویسنده

شمشاد امیری خراسانی

بنیان گذار گروه توسعه وب آریا پاد - توسعه دهنده PHP - لاراول و وردپرس

پست های مرتبط

2
دیدگاه بگذارید

avatar
1 موضوع دیدگاه
1 موضوع پاسخ
0 دنبال کنندگان
 
بیشترین پاسخ واکنش نشان داد
پرطرفدارترین نظر
2 نویسنده دیدگاه
شمشاد امیری خراسانیسجاد نویسندگان نظرات اخیر
  اشتراک  
جدیدترین قدیمی ترین بیشترین رای
به من اطلاع بده
سجاد
مهمان

آقا جان بعید می دونم این چیزی که گذاشتی با چیزی که انجام دادید یکی باشه! تا جایی که یادم هست در Php تابعی به اسم ins نداشتیم که دستور شرطی بگیره و لاراول در چنین تابعی به عنوان helper وجود نداره. از طرفی بعید می دونم در چنین شرایطی صرف چک کردن REFERER کفایت و یا حتی درست باشه، روش منطقی تر وریفای مجدد با سرور مبدا هست ( چیزی مانند روش های handshaking ) تا اصالت اطلاعات ورودی تایید بشه. چون هر درگاه پرداختی در دنیا یک شناسه یکتا به هر تراکنش اختصاص میده و از طرفی تقریبا… ادامه مطلب »