الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال للمختصين في امن ال Php

بدأه khaled338 في 24 ديسمبر 2008 · 3 رد · 606 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

418.gif

مشروع انشاء مكتبه مركزيه للحاسب الالى وهذا مشروع التخرج

المطلوب ايجاد الثغرات وتصحيحها لامن الموقع لمنع الهاكرز من وجود الثغره

ارجو منكم المساعده في هذا الكود

<?php

include_once('conect.php') ;

$id = $_GET["id"] ;

$res = mysql_query("SELECT filepath ,fname , floadscount FROM tbl_books WHERE fid =$id") ;

if ($res) {

$lROW = mysql_fetch_assoc($res) ;

$_media_dir = "upload/" ;

$file = $lROW["filepath"] ;

$ffileds = $lROW["fname"] ;

$extension = substr($file,strlen($file)-3,3) ;

header("Content-Type: ". $extension);

header("Content-Length: ". filesize($_media_dir . $file));

header("Content-Disposition: attachment; filename=" . $ffileds . "." . $extension);

readfile($_media_dir . $file);

$loadsno = $lROW["floadscount"] +1;

$lvote=0;

if ($loadsno > 1 && $loadsno <= 5 ) $lvote = 1 ;

if ($loadsno > 5 && $loadsno <= 10 ) $lvote = 2 ;

if ($loadsno > 10 && $loadsno <= 15 ) $lvote = 3 ;

if ($loadsno > 15 && $loadsno <= 20 ) $lvote = 4 ;

if ($loadsno > 20 ) $lvote = 5 ;

mysql_query("UPDATE tbl_books SET floadscount = floadscount +1 , fvote = $lvote WHERE fid=$id") ;

exit ;

}

?>

ولكم جزيل الشكر

#2
  1. <?php
  2. include_once('conect.php');
  3.  
  4. if (isset($_GET['id'])) {
  5. $id = intval($_GET['id']);
  6.  
  7. $res = mysql_query("SELECT filepath, fname, floadscount FROM tbl_books WHERE fid=$id");
  8. if ($res)
  9. if (mysql_num_rows($res)) {
  10. $lROW = mysql_fetch_assoc($res);
  11.  
  12. $_media_dir = "upload/";
  13. $file = $lROW["filepath"];
  14. $ffileds = $lROW["fname"];
  15. $extension = substr($file,strlen($file)-3,3);
  16.  
  17. header("Content-Type: ". $extension);
  18. header("Content-Length: ". filesize($_media_dir . $file));
  19. header("Content-Disposition: attachment; filename=" . $ffileds . "." . $extension);
  20. readfile($_media_dir . $file);
  21.  
  22. $loadsno = $lROW["floadscount"] +1;
  23. $lvote=0;
  24. if ($loadsno > 1 && $loadsno <= 5 ) $lvote = 1 ;
  25. if ($loadsno > 5 && $loadsno <= 10 ) $lvote = 2 ;
  26. if ($loadsno > 10 && $loadsno <= 15 ) $lvote = 3 ;
  27. if ($loadsno > 15 && $loadsno <= 20 ) $lvote = 4 ;
  28. if ($loadsno > 20 ) $lvote = 5 ;
  29. mysql_query("UPDATE tbl_books SET floadscount = floadscount + 1, fvote = $lvote WHERE fid=$id");
  30.  
  31. }
  32. }
  33. ?>
  34.  

عموماً ... عند استقبال أى مدخلات عن طريق GET_$ لاستخدامها فى جمل sql - لا تستقبلها مباشرتاً بالطريقة

  1. $var = $_GET['var'];
  2.  

ولكن استخدم معها mysql_real_escape_string بالطريقة
  1. $var = mysql_real_escape_string($_GET['var']);
  2.  

تم تعديل هذه المشاركة بواسطة a3ghadeer في 24 ديسمبر 2008 في 10:07

#3

a3ghadeer

يعطيك العافيه

طلب بسيط لماذا نستخدم هذا الكود

استخدم معها mysql_real_escape_string

$var = mysql_real_escape_string($_GET['var']);

#4

You have to use indarect methode like function or methode sprintf();with arguments (%s,%s,%s,%s,$your query) , to ovide from sql injection and formate you query with legal syntaxe . in your code it is very possible to use sql injections hack 

مواضيع مشابهة