PDA

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



p30online
پنج شنبه 12 دی 1392, 12:15 عصر
دوستان این کدها امنیت داه یا نه ؟اگر خیر چرا؟




<?php


$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="electronic"; // Database name
$tbl_name="vehicles"; // Table name

include('jdf.php');

$day_number = jdate('j');
$month_number = jdate('n');
$year_number = jdate('y');
$day_name = jdate('l');

$date="$year_number/$month_number/$day_number";


$username=$_POST['namekala'];
$noe=$_POST['noe'];
$dastedovom=$_POST['dastedovom'];
$foroshande=$_POST['foroshande'];
$model=$_POST['model'];
$gheymat=$_POST['gheymat'];
$phone=$_POST['phone'];
$address=$_POST['address'];
$email=$_POST['email'];
$tozihat=$_POST['tozihat'];


$username=stripslashes('namekala');
$noe=stripslashes('noe');
$dastedovom=stripslashes('dastedovom');
$foroshande=stripslashes('foroshande');
$model=stripslashes('model');
$gheymat=stripslashes('gheymat');
$phone=stripslashes('phone');
$address=stripslashes('address');
$email=stripslashes('email');
$tozihat=stripslashes('tozihat');

$username=mysql_real_escape_string('namekala');
$noe=mysql_real_escape_string('noe');
$dastedovom=mysql_real_escape_string('dastedovom') ;
$foroshande=mysql_real_escape_string('foroshande') ;
$model=mysql_real_escape_string('model');
$gheymat=mysql_real_escape_string('gheymat');
$phone=mysql_real_escape_string('phone');
$address=mysql_real_escape_string('address');
$email=mysql_real_escape_string('email');
$tozihat=mysql_real_escape_string('tozihat');


mysql_query('SET NAMES \'utf8\'');

mysql_query("INSERT INTO `ecity`.`vehicles` (`namekala`, `noe`, `dastedovom`, `foroshande`
, `model`, `gheymat`, `phone`, `address`, `email`, `tozihat`) VALUES ('$username', '$noe', '$dastedovom', '$foroshande', '$model', '$gheymat', '$phone', '$address', '$email', '$tozihat');");

header('location:admin.php');

?>

Veteran
پنج شنبه 12 دی 1392, 12:30 عصر
از این کد جهت خلاصه سازی استفاده کنید

$result=array_map('mysql_real_escape_string',$_POS T);
echo $result['namekala'];
دیگه نیاز به این همه تکرار کد نیست

p30online
پنج شنبه 12 دی 1392, 12:32 عصر
کجاش باید بنویسم
ممنون

metal gear solid 4
پنج شنبه 12 دی 1392, 12:39 عصر
به جای هر سه بلوک از کدهاتون که خطوط زیادی رو هم اشغال کرده همون دو خط رو بنویسید کافیه. نتیجه یک آرایه خواهد بود. خطوط 20 تا 52

بعلاوه از mysql_ دیگه استفاده نکنید. PHP 5.5 دیگه این توابع رو پشتیبانی نمیکنه. به جاشون از mysqli_ استفاده کنید.

SilverLearn
پنج شنبه 12 دی 1392, 12:41 عصر
از این کد جهت خلاصه سازی استفاده کنید

$result=array_map('mysql_real_escape_string',$_POS T);
echo $result['namekala'];
دیگه نیاز به این همه تکرار کد نیست


دقیقا ...

نیازی به این همه تکرار نیست دوست عزیز

p30online
پنج شنبه 12 دی 1392, 13:42 عصر
وظیفه این قسمت چیست؟؟



$username=stripslashes('namekala');
$noe=stripslashes('noe');
$dastedovom=stripslashes('dastedovom');
$foroshande=stripslashes('foroshande');
$model=stripslashes('model');
$gheymat=stripslashes('gheymat');
$phone=stripslashes('phone');
$address=stripslashes('address');
$email=stripslashes('email');
$tozihat=stripslashes('tozihat');

SilverLearn
پنج شنبه 12 دی 1392, 14:22 عصر
استفاده از تابع stripslashes() :

اين تابع به آنچه كه magic quote اضافه ميكنه آگاهه و خودش براي ورودي كه به اون بديم حذفش ميكنه
كد زير نمونه ي خوبي براي اين تابعه:
(يه بار اين كد رو بدونه تابع stripslash و يه بار با اون اجرا كنيد تا خودتون متوجه بشين)





<?php
echo "Removed Slashes: ";
// Remove those slashes
if(get_magic_quotes_gpc())
echo stripslashes($_POST['question']);
else
echo $_POST['question'];

?>

<form method='post'>
Question: <input type='text' name='question'/><br />
<input type='submit'>

</form>




كار magic quote چيست؟

در واقع كاراكترهاي حساس را كه امكان دارد از طريق آنه سايت مورد حمله قرار بگيرد به نحوي تغيير ميدهد
كه قسمتي از حملات كارساز نباشد مثل(sql injection كه نوعي حمله مي باشد)

p30online
پنج شنبه 12 دی 1392, 14:29 عصر
:متفکر: حالا فهمیدم