PDA

View Full Version : سوال: آیا استفاده از فیلدهای مخفی مشکل امنیتی دارد؟



mostafa272
سه شنبه 27 تیر 1391, 20:09 عصر
با سلام

امروز که داشتم در مورد راه های نفوذ هکرها در وب سایت ها دنبال مطلب می گشتم مطلبی دیدم که نوشته بود :یکی از راههایی که هکرها برای تزریق sql استفاده می کنند استفاده از فیلدهای مخفی html است اما توضیح نداده بود چه طور!منم تو چند تا از وب سایتهام از فیلدهای مخفی برای پاس کاری مقادیر استفاده می کردم.حالا می خوام بدونم که آیا استفاده از این فیلدها مشکل سازه و اینکه هکرها چه طور تزریق رو انجام می دهند(اگه مقادیر فیلدها از سمت سرور خوانده شوند)

ayub_coder
سه شنبه 27 تیر 1391, 20:23 عصر
ورود اطلاعات چه از فیلد مخفی چه از طریق عقم یه از طریق ورودی استاندارد باید فیلتر بشن. اگه این موارد رعایت بشن مشکلی پیش نخواهد امد

mostafa272
سه شنبه 27 تیر 1391, 21:19 عصر
من در برنامه هام مقادیری که به فیلدهای مخفی می دادم از سمت سرور بوده . می خوام بدونم روش کار هکرها برای تزریق در این فیلد ها چطوریه؟(چون که دیده نمی شوند)و اینکه آیا با وجود مقدار دهی به فیلد از سمت سرور باز هم امکان تزریق sql وجود دارد؟

ayub_coder
چهارشنبه 28 تیر 1391, 00:01 صبح
ببینید فیلد های مخفی هیچ تفاوتی با یه تکست باکس که مشاهده میشه نداره فقط نمایش داده نمیشه. اگر شما داده های ورودی از طریق فیلدها رو چه مخفی چه ساده اعتبار سنجی نکنید مشکل سازه. ولی فیلد مخفی به خودی خود هیچ خطری نداره.

tehro0n
چهارشنبه 28 تیر 1391, 02:11 صبح
شما در کل قوانین محدود سازی برای اطلاعاتی که به پایگاه داده تان ذخیره می شوند را انجام دهید، بهتر است با جاوا برای کاربران و زیبایی صفحه و با تابع هایی چون escape - is_numeric - htmlspecialchars - urldecode و ... در فایل php چک کنید و با خیال راحت اطلاعات را ذخیره کنید

پیشنهاد می کنم یواش یواش به جای mysql از mysqli استفاده کنید.

imanitc
چهارشنبه 28 تیر 1391, 13:25 عصر
بايد براي دريافت هر گونه اطلاعات اعم از مخفي يا معمولي از توابع فيلتر کننده استاده کني مثلا از توابع

//Recive data from form -----------------------------------
function Post_Int($value)
{
return (int)$_POST[$value];
}
function Post_Char($value)
{
return mysql_real_escape_string($_POST[$value]);
}
function Req_Int($value)
{
return (int)$_REQUEST[$value];
}
function Req_Char($value)
{
return mysql_real_escape_string($_REQUEST[$value]);
}
function Is_Post($value)
{
if(isset($_POST[$value]))
return true;
else
return false;
}
function Is_Reg($value)
{
if(isset($_GET[$value]))
return true;
else
return false;
}

بجاي خواندن با توابع خود php استفاده کني