المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال بالنسبة لثغره Sql Injection كيف أقدر أتفاداه في برمجتي



salima
11-01-2013, بتوقيت غرينيتش 01:05 PM
http://www.dzbatna.com/images/icons/iconrote.gif ط³ط¤ط§ظ„ ط¨ط§ظ„ظ†ط³ط¨ط© ظ„ط«ط؛ط±ظ‡ Sql Injection ظƒظٹظپ ط£ظ‚ط¯ط± ط£طھظپط§ط¯ط§ظ‡ ظپظٹ ط¨ط±ظ…ط¬طھظٹ (http://www.dzbatna.com/t772647/)



لسلام عليكم
لدي سؤال بالنسبة لثغره SQL INJECTION كيف أقدر أتفاداه في برمجتي
مثلاً هذا الكود code التصويت
رمز PHP:

<code style="white-space:nowrap"> <code> require_once 'func.php' ;
if($action == "oldvotes") {
$_vdata = db_get_res("SELECT fid , fcaption , fdate FROM tblvotesmain ORDER BY fid desc") ;
if(mysql_num_rows($_vdata)) {
$_content = "<ul>" ;
while ($lROW = mysql_fetch_array($_vdata, MYSQL_ASSOC)) {
$_content .= "<li><b>" . do_link("cmds.php?action=vote&id=" . $lROW&#91;"fid"&#93;
, ' <font color="#FF0000">&#91;lng:voting&#93; :</font> ' . $lROW&#91;"fcaption"&#93; . ' <font color="#09B309">&#91;lng:thedate&#93; :</font> ' .
strftime("%d-%m-%Y", strtotime($lROW&#91;"fdate"&#93;))
, "#333399"
) . "</b></li>";
}
}
$_content .= "</ul>" ;
}
</code> </code>




وهنا الإستدعاء من func.php

رمز PHP:

<code style="white-space:nowrap"> <code>
function load_voting_view_block($id) {

$_vars&#91;"dir"&#93; = cur_tmp() ;


$_vdata = db_get_res("SELECT * FROM tblvotesoptions WHERE fvoteid = $id") ;
$_tblview = "" ;
$_st = 'style="border-left-style: dotted; border-left-width: 1px; border-bottom-style: dotted; border-bottom-width: 1px; padding: 1px"';
$_tot = db_get_val_sql("SELECT SUM(fvotes) FROM tblvotesoptions WHERE fvoteid = $id");


if(mysql_num_rows($_vdata)) {
while($lROW = mysql_fetch_array($_vdata, MYSQL_ASSOC)) {
$pers = 0 ;
$i = 0;
$_votedraw = "";

$pers = @round(($lROW&#91;"fvotes"&#93; / $_tot) * 100) ;

for($i = 0 ; $i < $pers ; $i++) {
$_votedraw .= "|" ;
}


$_votedraw .= " " . $pers . " %" ;
$_tblview .= '<tr height="30" >
<td width="20%" ' . $_st . '>' . $lROW&#91;"fcaption"&#93; . '</td>
<td width="70%" ' . $_st . '>' . $_votedraw . '</td>
<td width="10%" ' . $_st . '>' . $lROW&#91;"fvotes"&#93; . '</td></tr>';
}
}
$_tblview .= '<tr height="30" >
<td width="20%" ' . $_st . '>' . '&#91;lng:total&#93;' . '</td>
<td width="70%" ' . $_st . '>' . '' . '</td>
<td width="10%" ' . $_st . '>' . $_tot . '</td></tr>';




$_vars&#91;"ftopic"&#93; = db_get_val_sql("SELECT fcaption FROM tblvotesmain WHERE fid=$id") ;

$_vars&#91;"voting"&#93; = $_tblview ;

$cntnt = load_cntnt("votes" , $_vars , $_vars) ;

if(!$cntnt) {
return "" ;
}

return $cntnt ;

}
</code> </code>

طبعاً لو أستعرضه

FILE.php?action=vote&id=1

راح يكون تمام
ولكن لو أضيف كذا
FILE.php?action=vote&id=-1

راح يظهر خطاء الثغره المشهور وهي

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/MYUSER/public_html/func.php on line 5

ياريت يلي عنده حل يفيدنا

والسلام عليكم






ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى