Ali_Sedaghat
جمعه 10 خرداد 1392, 22:51 عصر
با سلام خدمت دوستان
من دارم روی یه اسکریپت توی لوکال کار می کنم. می خوام پس از تکمیل شدن این اسکریپت اونو توی هاست قرار بدم اما چند مطلب ذهن منو به خودش مشغول کرده که یکی از مهم ترینش رو در پایین از شما دوستان می پرسم.
به کد زیر دقت کنید:
$sql1 = $db->query("SELECT * FROM forms WHERE form_id = '".(int)$_GET['fid']."'");
متغیری داریم به نام fid - این متغیر شماره ی فرم مورد نظر را در مرورگر نمایش میده. وقتی که من در جلوی شماره ی فرم از کاراکتر ( ' ) استفاده می کنم هیچ مشکلی رو ایجاد نمی کنه. اما وقتی در کد بالا تابع (int) را بر می دارم بهم پیغام خطایی مبنی بر وجود اشکال در اس کیو ال میده که میشه با یه سری دستورات اطلاعات را از بانک اطلاعاتی استخراج کرد.
$sql1 = $db->query("SELECT * FROM forms WHERE form_id = '".$_GET['fid']."'");
کد بالا قابل هک شدن هست. تست کردم.
حالا می خوام بدونم آیا روشی هست که بشه تابع (int) را دور زد با وجود این که این تابع در دستور وجود داره؟ به عبارت بهتر امکانش هست که این فایل از طریق Sql Injection هک بشه؟
اگه هست از چه دستوراتی تابع int را میشه دور زد؟
ممنون می شم اگه راهنمایی کنید.
با تشکر
صداقت
من دارم روی یه اسکریپت توی لوکال کار می کنم. می خوام پس از تکمیل شدن این اسکریپت اونو توی هاست قرار بدم اما چند مطلب ذهن منو به خودش مشغول کرده که یکی از مهم ترینش رو در پایین از شما دوستان می پرسم.
به کد زیر دقت کنید:
$sql1 = $db->query("SELECT * FROM forms WHERE form_id = '".(int)$_GET['fid']."'");
متغیری داریم به نام fid - این متغیر شماره ی فرم مورد نظر را در مرورگر نمایش میده. وقتی که من در جلوی شماره ی فرم از کاراکتر ( ' ) استفاده می کنم هیچ مشکلی رو ایجاد نمی کنه. اما وقتی در کد بالا تابع (int) را بر می دارم بهم پیغام خطایی مبنی بر وجود اشکال در اس کیو ال میده که میشه با یه سری دستورات اطلاعات را از بانک اطلاعاتی استخراج کرد.
$sql1 = $db->query("SELECT * FROM forms WHERE form_id = '".$_GET['fid']."'");
کد بالا قابل هک شدن هست. تست کردم.
حالا می خوام بدونم آیا روشی هست که بشه تابع (int) را دور زد با وجود این که این تابع در دستور وجود داره؟ به عبارت بهتر امکانش هست که این فایل از طریق Sql Injection هک بشه؟
اگه هست از چه دستوراتی تابع int را میشه دور زد؟
ممنون می شم اگه راهنمایی کنید.
با تشکر
صداقت