PDA

View Full Version : سوال: sql injection



سلمان رسولی
یک شنبه 11 اردیبهشت 1390, 07:42 صبح
سلام .این کد رو برای جلوگیری از injection استفاده کردم ولی درست جواب نمیده. اشکالش کجاست؟
<?php
//error_reporting(0);
$test=$_POST['S1'];
$con=mysql_connect("localhost","root","") or
die("could not connect to database");
mysql_select_db("test",$con) or
die("could not select database") ;
$query=sprintf("insert into test2 (name) values ('$test')",
mysql_real_escape_string($test))
or die(mysql_error());

mysql_query($query) or
die(mysql_error());

?>

qqq2qqq
یک شنبه 11 اردیبهشت 1390, 08:08 صبح
addslashes(htmlspecialchars($test))


به این صورت می تونی استفاده کنی اگه باز هم بیشتر کمک خواستی بگو تا کد کامل بهت بدم

سلمان رسولی
دوشنبه 12 اردیبهشت 1390, 08:03 صبح
ممنون از کمکت، ولی بیشتر میخواستم بدونم چرا با وجود استفاده از mysql_real_escape_string هیچ اتفاقی نمی افته . اگه کد کامل اینم برام بذاری خیلی خوب میشه.

raravaice
دوشنبه 12 اردیبهشت 1390, 14:52 عصر
خوب تا زمانی که شما از test$ به جای s% در sprintf استفاده میکنید توقعی نباید داشته باشید.
خط زیر را پبدا و جایگزین کنید.



$query=sprintf("insert into test2 (name) values ('%s')",
mysql_real_escape_string($test));


موفق باشید