PDA

View Full Version : سوال: امنیت توابع کار با دیتابیس



nikman
چهارشنبه 09 بهمن 1392, 23:00 عصر
سلام
من برای کار با دیتابیس از این کد استفاده می کنم و اون را با یک رابط در هدر فراخوانی می کنم . در کل اسکریپت هرجایی که نیاز به پایگاه داده دارم از توابع استفاده می کنم.می خواهم بدونم استفاده از این روش مشکل امنیتی داره یا نه ؟
آیا پایگاه داده به درستی بسته میشه یا نه؟



<?php
//تعریف متغیر جهانی
$conn="";
//اتصال به پایگاه داده و تنظیم کاراکتر روی فارسی
function DBconnect(){
include('config.php');
$GLOBALS['conn'] = mysql_connect("$host","$dbuser","$dbpass")or die("به پایگاه داده نمی توان متصل شد");
mysql_select_db("$dbname",$GLOBALS['conn']) or die("به دیتابیس نمی توان وصل شد");
mysql_query("set CHARACTER SET utf8");
}

//ثبت اطلاعات در پایگاه داده و بستن آن
function DB_insert($name,$column,$value){
DBconnect();
$sql = "INSERT INTO $name ($column) VALUES ($value)";
mysql_query($sql);
mysql_close($GLOBALS['conn']);
}

//انتخاب اطلاعات از پایگاه داده و بستن آن
function DB_select($name,$column,$value){
DBconnect();
$sql = "SELECT $column FROM $name $value";
return mysql_query($sql);
mysql_close($GLOBALS['conn']);
}

//آپدیت پایگاه داده و بستن آن
function DB_update($name,$column,$value){
DBconnect();
$sql = "UPDATE $name SET $column $value";
return mysql_query($sql);
mysql_close($GLOBALS['conn']);
}

//حذف اطلاعات از پایگاه داده و بستن آن
function DB_delete($name,$value){
DBconnect();
$sql = "DELETE from $name $value";
return mysql_query($sql);
mysql_close($GLOBALS['conn']);
}
?>

busy.man
پنج شنبه 10 بهمن 1392, 09:21 صبح
شما مشکلی که دارین 1-اینکه شما باید آخر هر بار استفاده از دیتابیس کد


mysql_free_resualt()
mysql_close()

استفاده کنید.

busy.man
پنج شنبه 10 بهمن 1392, 09:25 صبح
<?php
//تعریف متغیر جهانی
$conn="";
//اتصال به پایگاه داده و تنظیم کاراکتر روی فارسی
function DBconnect(){
include('config.php');
$GLOBALS['conn'] = mysql_connect("$host","$dbuser","$dbpass")or die("به پایگاه داده نمی توان متصل شد");
mysql_select_db("$dbname",$GLOBALS['conn']) or die("به دیتابیس نمی توان وصل شد");
mysql_query("SET NAMES /'utf8/'");
}
>?

با این کد میتونین encoding رو utf8 کنین !!!
این کد خودتونو از کجا گیر اوردین ؟؟؟

mysql_query("set CHARACTER SET utf8");

busy.man
پنج شنبه 10 بهمن 1392, 09:27 صبح
در ضمن برای escape کردن کد ها که موقع ارسال کد مخرب استفاده میشه از این کد استفاده کنین.


mysql_real_escape_string($string)

busy.man
پنج شنبه 10 بهمن 1392, 09:33 صبح
در ضمن دوست خوب من . چرا اینقدر به خودت سختی میدی. فقط کافیه از شئ گرایی استفاده کنی. یه class بساز که این فانکشن ها رو داشته باشه. بهتر هم هست.
دوما دوست عزیز شما اصلا query ها رو استاندارد نمینویسی.

nikman
پنج شنبه 10 بهمن 1392, 10:19 صبح
ممنون بابت پاسخ.
چرا مطالب را در یک پست ارسال نکردید !!؟
escape - من از این تابع در قسمت مدیریت استفاده می کنم
بابت query ها هم عمدا انها را چرخوندم تا راحت تر بشه
برای فارسی کردن از این مجموعه استفاده میشه


mysql_query("SET NAMES 'utf8'", $this->link);
mysql_query("SET CHARACTER SET utf8", $this->link);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);