Перейти к контенту
  • 0

password protected forum & cookie


Вопрос

Господа! Понимаю, что проблема, описанная мною для кого-то может показаться пустяковой, но все же:

 

А особенность такая, на форуме есть подфорум с установленным паролем. Доступ на который имеют право группа пользователи и выше, знающие определеннй пароль.

Допустим, такая ситуация, я, пользователь, зашел в инет-кафе, взял часок, залез на любимый форум, зашел на тот подфорум, ввел пароль, поработал чуток, вышел даже через log out. Да.

Что далее, приходит в это же кафе другой человек, тоже зарегистрированный на этом форуме но пароля к закрытому форуму он не знает, соответственно, не должен иметь доступ к нему. По случайному совпадению, его сажают за тот же комп, где до этого час назад был я. Он заходит на форум под своим ником, и, попытавшись войти в закрытый паролем форум, его без проблем туда пускают, даже не спросив пароля.

Естественно, в COOKIE осталась прошлая инфа именно об этом форуме и при выходе LOG OUT она не удалилась. Как это исправить?

Вообще, было бы желательно полностью очищать COOKIE при выходе...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

тыкали...

 

по ссылке обращаемся к login.php на функцию delete_cookies(), и куки действительно она обнуляет, но так получается, что форум с паролем в куки сидит всеравно...

 

function delete_cookies()
 {
 global $ibforums, $DB, $std, $HTTP_COOKIE_VARS;
	 
	 if (is_array($HTTP_COOKIE_VARS))
	 {
   foreach( $HTTP_COOKIE_VARS as $cookie => $value)
   {
  	 if (preg_match( "/^(".$ibforums->vars['cookie_id']."ibresource.*$)/i", $cookie, $match))
  	 {
     $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[0] ) , '-', -1 );
  	 }
   }
	 }
	 
	 $std->my_setcookie('pass_hash' , '-1');
	 $std->my_setcookie('member_id' , '-1');
	 $std->my_setcookie('session_id', '-1');
	 $std->my_setcookie('topicsread', '-1');
	 $std->my_setcookie('anonlogin' , '-1');
	 $std->my_setcookie('forum_read', '-1');
	 
 $std->boink_it($ibforums->base_url);
 exit();
}  

[1121264417:1121265072]вот функция, работающая с закрытыми паролем форумами

 

	/*-------------------------------------------------------------------------*/
// Authenicate the log in for a password protected forum
/*-------------------------------------------------------------------------*/

function authenticate_user()
{
 global $std, $ibforums, $print;
 
 if ($ibforums->input['f_password'] == "")
 {
	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'pass_blank' ) );
 }
 
 if ( $ibforums->input['f_password'] != $this->forum['password'] )
 {
	 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'wrong_pass' ) );
 }
 
 $std->my_setcookie( "ipbforumpass_".$this->forum['id'], md5($ibforums->input['f_password']) );
 
 $print->redirect_screen( $ibforums->lang['logged_in'] , "showforum=".$this->forum['id'] );
}

 

Когда читаешь обычный форум в куки пишется forum_read

 

если форум с защитой ipbforumpass

 

а в функции удаления о нем никто и не вспоминает...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

синтаксис php... с ним не так давно знаком... общаемся пока на языке мимики и жестов...

 

 

да и вот непонятный момент, когда заходишь на защищенный форум тебе в куки пишется

ipbforumpass_".$this->forum['id']

 

в куки имеем ipbforumpass_номерфорума

 

и вопрос, что ввести в функцию удаления

 

$std->my_setcookie('ipbforumpass_???????????????', '-1');

 

как указать id форума с паролем?

 

я понимаю, можно явно указать номер, но хотелось бы найти более универсальный способ...[1121266550:1121323299]в общем, можно конкретный форум указать в function delete_cookies(), скажем, если форум с паролем имеет id = 7, то

 

$std->my_setcookie('ipbforumpass_7', '-1');

 

 

но придется тогда каждый форум указывать....

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.