PDA

View Full Version : سوال: جلوگیری از حملات mysql



.fatemeh
سه شنبه 20 دی 1390, 10:33 صبح
سلام دوستان
من این تابع رو برای امنیت سایتم استفاده کردم

function sql_quote($value){
if(get_magic_quotes_gpc()){
$value=stripslashes($value);}
if(function_exists("mysql_real_escape_string")){
$value=mysql_real_escape_string($value);}
else{
$value=addslashes($value);}
return($value);}

و مثلابرای فیلدی به نام name به صورت زیر استفاده کردم

sql_quote($_REQUEST['name']);
ولی وقتی توی name کارکتر" رو می نویسم توی بانک درج می کنه.
چرا؟؟؟؟

eshpilen
سه شنبه 20 دی 1390, 11:55 صبح
این کاراکترها Escape میشن، نه حذف/فیلتر.
Escape کردن از درج در دیتابیس جلوگیری نمیکنه.
درج هرچیزی در دیتابیس به خودی خودش خطری نداره.
اگر میخواید در رشتهء مورد نظر کاراکترهای خاصی وجود نداشته باشن باید این کار رو از راه دیگری انجام بدن. البته Escape کردن رو برندارید و همیشه قبل از درج در کوئری Escape کنید گرچه کاراکترهای خاصی رو قبلا فیلتر کرده باشید.

.fatemeh
سه شنبه 20 دی 1390, 12:43 عصر
به نظرتون از strip_tags استفاده کنم؟
کاربری که فرم رو پر میکنه تگ html لازم نداره.

djsaeedkhan
سه شنبه 20 دی 1390, 17:29 عصر
با سلام
می تونی از این تابع برای امنیت بیشتر استفاده کنی
فقط مقدار رو به تابع بده و همونو روی خودش ذخیره کن

function secure($string) {
$string = strip_tags($string);
$string = htmlspecialchars($string);
$string = trim($string);
$string = stripslashes($string);
$string = mysql_real_escape_string($string);
return $string;

}



$str=secure($str);

iner30
یک شنبه 11 تیر 1391, 23:00 عصر
الان وقتی از این تابع استفاده میکنم خیالم از همه ورودی ها راحت باشه؟

farhadfery
دوشنبه 12 تیر 1391, 00:06 صبح
ببین vejmad قبلا در موردش بحث کرده بود. یه فانکشن هم به اسم smartquta دادند. شبیه تابع بالا است . البیته if esle داره . برای اینکه ببینه majic_qu.. هست یا نه

idocsidocs
دوشنبه 12 تیر 1391, 14:42 عصر
if(function_exists("mysql_real_escape_string"))
این شرط برای چیه؟

اگر سروری این تابع رو پشتیبانی نکنه، بنظرم بهتره اصلا از اون سرور استفاده نکنید. چون دردسترس ترین ابزار ایجاد امنیت دیتابیس رو برای برنامه نویس فراهم نکرده و معلوم نیست بقیه ابزار امنیتی رو هم بکار می بره یا نه!