سلام دوستان وقتتون بخیر
ببخشید برای رفع باگ sql injection در php
فقط کوئری هاتو به صورت pdo prepare بنویسی کافیه
یا کار دیگه ای باید انجام داد
اگر کوئری ها prepare بشه اگر از طریق url کد مخرب فرستاده بشه دیگه مشکلی ایجاد نمیشه؟
بله همین کار کافیه
وقتی شما دیتای کاربر رو با استفاده از $_POST
دریافت کنی دیگ اگ با استفاده از url و متد get چیزی تزریق کنه توی کوئری قرار نمیگیره و جایی نداره
اگرم میخواین میتونید یه شرط بزارید که فقط وقتی متد post درخواست شد و به صفحه ارسال شد دستوراتتون کار کنه میتونید کد زیر رو اجرا کنید
if ($_SERVER [' REQUEST_METHOD'] == 'POST')
{
// do somthing
}
سلام
وقتی دستوری رو prepare میکنیم بجای ورودی هایی که قراره مستقیم از کاربر بگیریم و وارد کوئری کنیم یه سری پارامتر با نام دلخواه قرار میدم به صورت زیر
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
بعد دستور زیر رو اجرا میکنیم تا مقدایر کاربر رو جای اون پارامتر هایی که مشخص کردیم قرار بدیم
$stmt->bindParam(':firstname', "ali");
$stmt->bindParam(':lastname', "alipour");
$stmt->bindParam(':email', "alip@gmail.com");
تابع bindParam دوتا ورودی میگیره اولی اسمی که به پارامتر ها تو کوئری دادیم تا پیداشون کنیم و دومی هم داده ای که میخوای بجای اون پارامتر تو کوئری جایگزین بشه
بعد از انجام این کار کوئری ما کاملا اماده و امن هست حالا کافیه با اجرای دستور زیر اونو اجرا کنیم
$stmt->execute();
بله همین کار کافیه
وقتی شما دیتای کاربر رو با استفاده از $_POST
دریافت کنی دیگ اگ با استفاده از url و متد get چیزی تزریق کنه توی کوئری قرار نمیگیره و جایی نداره
اگرم میخواین میتونید یه شرط بزارید که فقط وقتی متد post درخواست شد و به صفحه ارسال شد دستوراتتون کار کنه میتونید کد زیر رو اجرا کنید
if ($_SERVER [' REQUEST_METHOD'] == 'POST')
{
// do somthing
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟