كيفيه اغلاق ثغره الفلاش الخطيره مضمونة 100 فى 100
--------------------------------------------------------------------------------
بسم الله نبدأ :-
هناك طريقتين لحل هذه الثغره
اول طريقه واسهل طريقه هى اضافه كلمه كوكي ((cookie ))
الى قائمه الكلمات الممنوعه فى المنتدى وهذه سهله من لوحه التحكم
اما الحل التانى لهذه الثغره فهو طويل شويه الحقيقه وعايزك تركز معايا
مشكله الثغره فى ملف functions_bbcodeparse.php
وحلها ايضا فى هذا الملف
بسم الله بندا :-
اسحب هذا الملف من مجلد المنتدى وعدل عليه كالتالى
1- دور على الكود ده
كود PHP:
$bbcodes['custom']['recurse']['highlight'][0] = array('replace_html' => "<span class=\"highlight\">\\7</span>");
بعده مباشره اضف هذا الكود
كود PHP:
// For Magic-Box Added By AL3NDALEEB
$bbcodes['custom']['find']['[poem'] = '#\[poe[m](\s|"|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/poe[m]\]#esiU';
$bbcodes['custom']['replace']['[poem'] = "handle_bbcode_normal('\\4', '\\2', '', 'poem')";
$bbcodes['custom']['recurse']['poem'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[frame='] = '#\[frame=("|"|\'|)([0-9]+)[ ]+([0-9]+)[ ]*\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/frame\]#esiU';
$bbcodes['custom']['replace']['[frame='] = "handle_bbcode_normal('\\5', '\\2', '\\3', 'frame')";
$bbcodes['custom']['recurse']['frame'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[grade='] = '#\[grade("|"|\'|)(.*)\\1\](<br>|<br />|\r\n|\n|\r)??(.*)(<br>|<br />|\r\n|\n|\r)??\[/grade\]#esiU';
$bbcodes['custom']['replace']['[grade='] = "handle_bbcode_normal('\\4', '\\2', '', 'grade')";
$bbcodes['custom']['recurse']['grade'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['--------------------------------------------------------------------------------'] = '#\[hr\]#esiU';
$bbcodes['custom']['replace']['--------------------------------------------------------------------------------'] = "handle_bbcode_normal('hr', '', '', 'hr')";
$bbcodes['custom']['recurse']['hr'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['--------------------------------------------------------------------------------'] = '#\[line\]#esiU';
$bbcodes['custom']['replace']['--------------------------------------------------------------------------------'] = "handle_bbcode_normal('line', '', '', 'hr')";
$bbcodes['custom']['recurse']['line'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\](width=)\\1([0-9]+)\\1[ ]+(height=)\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\4','\\6', 'flash')";
$bbcodes['custom']['recurse']['flash'][0] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\](height=)\\1([0-9]+)\\1[ ]+(width=)\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\6','\\4', 'flash')";
$bbcodes['custom']['recurse']['flash'][1] = array('handler' => 'handle_bbcode_normal');
$bbcodes['custom']['find']['[flash='] = '#\[flash=("|"|\'|)(.*)\\1\]([w|W][i|I][d|D][t|T][h|H][=])\\1([0-9]+)\\1[ ]+([h|H][e|E][i|I][g|G][h|H][t|T][=])\\1([0-9]+)\\1\[/flash\]#esiU';
$bbcodes['custom']['replace']['[flash='] = "handle_bbcode_normal('\\2', '\\4','\\6', 'flash')";
$bbcodes['custom']['recurse']['flash'][0] = array('handler' => 'handle_bbcode_normal');
//
2- دور على الكود تجده اخر شىء
قبله مباشره اضف هذا الكود
كود PHP:
// For Magic-Box Added By AL3NDALEEB
function handle_bbcode_normal($message, $param1 = '', $param2 = '', $type = '' )
{
// remove empty codes
if (trim($message) == '' || $type == '')
{
return '';
}
// remove unnecessary escaped quotes
$message = strip_smilies(str_replace('\\"', '"', $message));
if($type == 'poem'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
// remove smilies from param
$param1 = strip_smilies($param1);
$html = '<div tag="'.$param1.'" style="display:none">'.$message.'</div><script>doPoem(0)</script>';
}elseif($type == 'frame'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
$param2 = str_replace('\\"', '"', $param2);
$param2 = str_replace('"', '"', $param2);
// remove smilies from param
$param1 = strip_smilies($param1);
$param2 = strip_smilies($param2);
$html = '<div id="myframe" tag="'.$param1.'|'.$param2.'" style="display:none">'.$message.'</div><script>drawFrame()</script>';
}elseif($type == 'hr'){
$html = '<hr noshade size=1>';
}elseif($type == 'grade'){
$param1 = str_replace('\\"', '"', $param1);
$param1 = str_replace('"', '"', $param1);
// remove smilies from param
$param1 = strip_smilies($param1);
$html = '<div id="mygradient" tag="'.$param1.'" style="display:none">'.$message.'</div><script>drawGradient()</script>';
}elseif($type == 'flash'){
if (!preg_match('#^[a-z]+://#si', $message)){
return '';
}
$param1 = intval($param1);
$param2 = intval($param2);
$html = '<embed src="'.$message.'" width="'.$param1.'" height="'.$param2.'" quality=high loop=true menu=false TYPE="application/x-shockwave-flash"</embed>';
}
return $html;
}
بس كده خلاص ان شاء الله احفظ الملف وارفعه وان شاء الله انسى الثغره
ملاحظاتى على الموضوع :-
1- رأيى الخاص لاى صاحب منتدى استخدم الطريقتين مع بعض لسد الثغره وليس طريقه واحده
هذا والله اعلى واعلم