السلام عليكم ورحمة الله وبركاته
في هذا الموضوع نتطرق للتحديث الأمني الذي صدر مؤخرا من شركة vBulletin لنسخة الجيل الثالث.
أولا : شرح الترقية لـ vBulletin 3.8.7 PL5 لأصحاب النسخ vB 3.8.7 PL4
ملفات الترقيع المحملة من الشركة تشمل التالي :
includes/functions.php
includes/functions_misc.php
includes/class_floodcheck.php
includes/class_dm_threadpost.php
includes/class_core.php
includes/init.php
includes/version_vbulletin.php
modcp/global.php
ملاحظة : قبل الشروع في عمل الترقيع احفظ نسخة احتياطية عن الملفات السابقة.
في ملف : functions.php
لا يوجد في الملف اي تعديل او تغيير
في ملف : functions_misc.php
لا يوجد في الملف اي تعديل او تغيير
في ملف : class_floodcheck.php
لا يوجد في الملف اي تعديل او تغيير
في ملف : class_dm_threadpost.php
لا يوجد في الملف اي تعديل او تغيير
في ملف : init.php
لا يوجد في الملف اي تعديل او تغيير
في ملف : version_vbulletin.php
نستبدل محتواه بالتالي :
كود:
<?php
define('FILE_VERSION_VBULLETIN', '3.8.7 Patch Level 5');
?>
في ملف : global.php
نبحث عن :
كود:
$permissions = cache_permissions($vbulletin->userinfo, true);
$vbulletin->userinfo['permissions'] =& $permissions;
$cpsession = array();
نضع مباشرة اسفله التالي :
كود:
$vbulletin->input->clean_array_gpc('p', array(
'adminhash' => TYPE_STR,
));
نبحث عن :
كود:
if ((!can_moderate() AND !can_moderate_calendar()) OR ($vbulletin->options['timeoutcontrolpanel'] AND !$vbulletin->session->vars['loggedin']) OR empty($vbulletin->GPC[COOKIE_PREFIX . 'cpsession']) OR $vbulletin->GPC[COOKIE_PREFIX . 'cpsession'] != $cpsession['hash'] OR empty($cpsession))
{
print_cp_login();
}
نستبدله بالتالي :
كود:
if ((!can_moderate() AND !can_moderate_calendar())
OR ($vbulletin->options['timeoutcontrolpanel'] AND !$vbulletin->session->vars['loggedin'])
OR empty($vbulletin->GPC[COOKIE_PREFIX . 'cpsession'])
OR $vbulletin->GPC[COOKIE_PREFIX . 'cpsession'] != $cpsession['hash']
OR empty($cpsession)
)
{
print_cp_login();
}
else if ($_POST['do'] AND ADMINHASH != $vbulletin->GPC['adminhash'])
{
if ($_POST['login_redirect'])
{
unset($_GET['do'], $_POST['do'], $_REQUEST['do']);
}
else
{
print_cp_login(true);
}
}
ثانيا : شرح الترقية لـ vBulletin 3.8.8 PL1 لأصحاب النسخ vB 3.8.8
ملفات الترقيع المحملة من الشركة تشمل التالي :
includes/version_vbulletin.php
modcp/global.php
ملاحظة : قبل الشروع في عمل الترقيع احفظ نسخة احتياطية عن الملفات السابقة.
في ملف : version_vbulletin.php
نستبدل محتواه بالتالي :
كود:
<?php
define('FILE_VERSION_VBULLETIN', '3.8.8 Patch Level 1');
?>
في ملف : global.php
نبحث عن :
كود:
$permissions = cache_permissions($vbulletin->userinfo, true);
$vbulletin->userinfo['permissions'] =& $permissions;
$cpsession = array();
نضع مباشرة اسفله التالي :
كود:
$vbulletin->input->clean_array_gpc('p', array(
'adminhash' => TYPE_STR,
));
نبحث عن :
كود:
if ((!can_moderate() AND !can_moderate_calendar()) OR ($vbulletin->options['timeoutcontrolpanel'] AND !$vbulletin->session->vars['loggedin']) OR empty($vbulletin->GPC[COOKIE_PREFIX . 'cpsession']) OR $vbulletin->GPC[COOKIE_PREFIX . 'cpsession'] != $cpsession['hash'] OR empty($cpsession))
{
print_cp_login();
}
نستبدله بالتالي :
كود:
if ((!can_moderate() AND !can_moderate_calendar())
OR ($vbulletin->options['timeoutcontrolpanel'] AND !$vbulletin->session->vars['loggedin'])
OR empty($vbulletin->GPC[COOKIE_PREFIX . 'cpsession'])
OR $vbulletin->GPC[COOKIE_PREFIX . 'cpsession'] != $cpsession['hash']
OR empty($cpsession)
)
{
print_cp_login();
}
else if ($_POST['do'] AND ADMINHASH != $vbulletin->GPC['adminhash'])
{
if ($_POST['login_redirect'])
{
unset($_GET['do'], $_POST['do'], $_REQUEST['do']);
}
else
{
print_cp_login(true);
}
}
هذا ولله التوفيق لنا ولكم