PDA

View Full Version : امنیت کدهای نوشته شده



p30online
جمعه 04 بهمن 1392, 12:25 عصر
دوستان این سورس امنیت داره یا خیر ؟



<?php
session_start();
ob_start();
if(isset($_POST['sendestate']))
{
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="adbase"; // Database name
$tbl_name="tbname"; // Table name

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
//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";
mysql_query('SET NAMES \'utf8\'');

$namemelk=$_POST['namemelk'];
$noe =$_POST["noe"];
$foroshande=$_POST['foroshande'];
$metraj=$_POST['metraj'];
$gheymat=$_POST['gheymat'];
$phone=$_POST['phone'];
$address=$_POST['address'];
$email=$_POST['email'];
$tozihat=$_POST['tozihat'];



$namemelk=stripslashes($namemelk);
$noe =stripslashes($noe);
$foroshande=stripslashes($foroshande);
$metraj=stripslashes($metraj);
$gheymat=stripslashes($gheymat);
$phone=stripslashes($phone);
$address=stripslashes($address);
$email=stripslashes($email);
$tozihat=stripslashes($tozihat);


$namemelk=mysql_real_escape_string($namemelk);
$noe = mysql_real_escape_string($noe);
$foroshande=mysql_real_escape_string($foroshande);
$metraj=mysql_real_escape_string($metraj);
$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);



if (!isset($_FILES['image']['tmp_name'])) {
echo "";
}
else{
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);

move_uploaded_file($_FILES["image"]["tmp_name"],"uploadestate/" . $_FILES["image"]["name"]);



$location="../businessonline/insert/uploadestate/" . $_FILES["image"]["name"];

}





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

$qry=mysql_query("INSERT INTO `estate` (`namemelk`,`noe`,`foroshande`, `metraj`, `gheymat`, `phone`, `address`, `email`, `tozihat`,`image`) VALUES ('$namemelk','$noe','$foroshande', '$metraj', '$gheymat', '$phone', '$address', '$email', '$tozihat','$location');");

if($qry)
$_SESSION['y']='y';

header('location:../estate.php');
exit();
?>
}
else
{
header('location:../estate.php');
exit();
}
?>

فرزند کوروش
جمعه 04 بهمن 1392, 12:33 عصر
$namemelk=$_POST['namemelk']; $noe =$_POST["noe"]; $foroshande=$_POST['foroshande']; $metraj=$_POST['metraj']; $gheymat=$_POST['gheymat']; $phone=$_POST['phone']; $address=$_POST['address']; $email=$_POST['email']; $tozihat=$_POST['tozihat']; $namemelk=stripslashes($namemelk); $noe =stripslashes($noe); $foroshande=stripslashes($foroshande); $metraj=stripslashes($metraj); $gheymat=stripslashes($gheymat); $phone=stripslashes($phone); $address=stripslashes($address); $email=stripslashes($email); $tozihat=stripslashes($tozihat); $namemelk=mysql_real_escape_string($namemelk); $noe = mysql_real_escape_string($noe); $foroshande=mysql_real_escape_string($foroshande); $metraj=mysql_real_escape_string($metraj); $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);

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


$tozihat=mysql_real_escape_string(stripslashes($_P OST['tozihat']));

یا یه فانکشن تعریف کن که همه ی این کارارو بکنه


function scape($value){
$value = mysql_real_escape_string(stripslashes($value));
return $value;
}
$tozihat = scape($_POST['tozihat']);

p30online
جمعه 04 بهمن 1392, 14:32 عصر
ممنون!
این کدها خطر دسترسی برای هک کردن داره یا خیر؟کاربر هکش کنه؟

foreach
جمعه 04 بهمن 1392, 14:38 عصر
بهتره که نوع فایلی که داره آپلود میشه رو هم برسی کنید و نزارید هر فایلی آپلود بشه

danial.saeedi
جمعه 04 بهمن 1392, 16:24 عصر
سلام نمیشه گفت امنیت کامله،چون هر برنامه ای یک نقص داره این جوری نمی تونم کد ها رو انالیز کنم!در ضمن برای از اینکه از باگ اینجکشن خیالت راحت بشه از PDO استفاده کن.
من یک نقص توش پیدا کردم!کاربر راحت می تونه هر فایلی رو راحت اپلود کنه این جوری می تونی رفعش کنی:


if($file["image"]["type"] == "image/png" || $file["image"]["type"] == "image/jpg")
{
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);

move_uploaded_file($_FILES["image"]["tmp_name"],"uploadestate/" . $_FILES["image"]["name"]);



$location="../businessonline/insert/uploadestate/" . $_FILES["image"]["name"];

}
else
{
echo "فرمت درست نمی باشد";
}

در ضمن این مدت گزارش شده که تابع mysql_real_escape_string مشکل امنتی داره لطفا از PDO استفاده کنید!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

p30online
جمعه 04 بهمن 1392, 17:03 عصر
اگر این طور بنویسم اشکال نداره که؟1



if (!isset($file["image"]["type"] == "image/png" || $file["image"]["type"] == "image/jpg") {
echo "";
}

abolfazl-z
جمعه 04 بهمن 1392, 17:12 عصر
ابتدا یک سری به اینجا http://barnamenevis.org/showthread.php?423435-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B4%D9%84-%D9%88-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%A2%D9%86&p=1925826&viewfull=1#post1925826 بزنید.
سپس تاپیک رو به بخش امنیت در PHP منتقل کنید.

engmmrj
جمعه 04 بهمن 1392, 17:32 عصر
امنیت در آپلود فایل PHP
مولف: مهندس محمد کارمتی فر
انتشارات: نشر دیجیتال کرامتی فر
تاریخ انتشار: 1392/07/30
تعداد صفحات: 30 صفحه

http://keramatifar.ir/?r=books

danial.saeedi
جمعه 04 بهمن 1392, 18:11 عصر
اگر این طور بنویسم اشکال نداره که؟1



if (!isset($file["image"]["type"] == "image/png" || $file["image"]["type"] == "image/jpg") {
echo "";
}


دلیلی نداره از isset برای فایل استفاده کنی!:لبخندساده:

kb0y667
یک شنبه 06 بهمن 1392, 09:50 صبح
گرفتن type از آرایه های پیش فرض فایل ارسالی کار اشتباهی هست
به هیچ کدام از ورودی های کاربر نباید اعتماد کرد

p30online
یک شنبه 13 بهمن 1392, 08:21 صبح
اگر این طور بنویسم اشکال نداره که؟1



if (!isset($file["image"]["type"] == "image/png" || $file["image"]["type"] == "image/jpg") {
echo "";
}

دوستان باید یه دونه مساوی گذاشت وگرنه آپلود نمی شود!