سلام دوستان
همه میدونیم که SQL Injection یکی از روشهای هک شدن سایتهاست و برنامه نویس باید شدیدا روی اون توجه داشته باشه .... همونجور که از اسمش هم پیداس یعنی تزریق یک کد SQL در داخل یک Query ...
من راه حلهایی که به ذهن خودم تابحال رسیده رو میگم ... کسایی هم که در این زمینه اطلاعات وتجارب مفیدی دارند بگند تا همه استفاده کنند .
1- فرق گذاشتن بین مقادیر GET و POST و Session و ...
2- نوشتن تابعی مثل injection_replace ( دوستان لطفا نظر بدند و اگه اشکال داره اصلاحش کنن ) :
3- موقع add کردن user در database در Cpanel همه privilage ها رو به user ندین . معمولا DROP و Delete خطرناکه و برای user معمولی نباید امکان داشته باشه ...
و اما Sql Injection چه راههایی داره ؟
یکیش اینه که توی فرمهایی مثل Login بیان مثلا به جای admin وارد کنن ' or username='admin'
این ساده ترین نوع injection هست و متاسفانه من در موارد پیچیده هیچ اطلاعاتی در این زمینه ندارم ...
آیا کسی اطلاعات کاملتری در این زمینه داره ؟
همه میدونیم که SQL Injection یکی از روشهای هک شدن سایتهاست و برنامه نویس باید شدیدا روی اون توجه داشته باشه .... همونجور که از اسمش هم پیداس یعنی تزریق یک کد SQL در داخل یک Query ...
من راه حلهایی که به ذهن خودم تابحال رسیده رو میگم ... کسایی هم که در این زمینه اطلاعات وتجارب مفیدی دارند بگند تا همه استفاده کنند .
1- فرق گذاشتن بین مقادیر GET و POST و Session و ...
2- نوشتن تابعی مثل injection_replace ( دوستان لطفا نظر بدند و اگه اشکال داره اصلاحش کنن ) :
PHP:
function injection_replace($txtobject){
$txtobject1=strtolower($txtobject);
str_replace("'","'",$txtobject );
str_replace("'","'",$txtobject );
str_replace("<","<",$txtobject );
str_replace(">",">",$txtobject );
str_replace("or","",$txtobject );
str_replace("delete","",$txtobject );
str_replace("update","",$txtobject );
str_replace("insert","",$txtobject );
return $txtobject;
}
3- موقع add کردن user در database در Cpanel همه privilage ها رو به user ندین . معمولا DROP و Delete خطرناکه و برای user معمولی نباید امکان داشته باشه ...
و اما Sql Injection چه راههایی داره ؟
یکیش اینه که توی فرمهایی مثل Login بیان مثلا به جای admin وارد کنن ' or username='admin'
این ساده ترین نوع injection هست و متاسفانه من در موارد پیچیده هیچ اطلاعاتی در این زمینه ندارم ...
آیا کسی اطلاعات کاملتری در این زمینه داره ؟