phpbb bug in Activeringslink
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.

phpbb bug in Activeringslink
Hallo lieve mensen,
Ik ben er laatst achter gekomen dat iedereen offline leden weer kan activeren. Door heel simpel in de activeringslink het lidnummer te wijzigen. Ik heb gezocht en gezocht op dit forum, maar nog geen bugfix gezien voor dit probleem. Iemand nog suggesties dan behalve de goedkeuring door de beheerder in te stellen? Je zou zeggen dat dit toch te fixen moet zijn om bijvoorbeeld de activering maar eenmalig te laten plaatsvinden.
Alvast bedankt voor het meedenken!
Immers
Ik ben er laatst achter gekomen dat iedereen offline leden weer kan activeren. Door heel simpel in de activeringslink het lidnummer te wijzigen. Ik heb gezocht en gezocht op dit forum, maar nog geen bugfix gezien voor dit probleem. Iemand nog suggesties dan behalve de goedkeuring door de beheerder in te stellen? Je zou zeggen dat dit toch te fixen moet zijn om bijvoorbeeld de activering maar eenmalig te laten plaatsvinden.
Alvast bedankt voor het meedenken!
Immers
Volgens mij kan dat niet hoor, kan enkel met en de juiste user_id en de juiste code. Eventueele bugs kan je trouwens toevoegen aan de bug database op http://www.phpbb.com/bugs/
Hoi Paulus,
Ja, het kan echt en het is ook nog eens kinderlijk eenvoudig!
Voorbeeld:
Orignele link van een nieuwe gebruiker: forum/profile.php?mode=activate&u=2771&act_key=7ad70b
Wijzig user 2771 bijvoorbeeld in u=15 dus forum/profile.php?mode=activate&u=6 ( dus zonder de achtervoegsels &act_key=7ad70b en het werkt!
User 15 wordt geactiveerd. Als dit geen bug is dan weet ik het niet meer. PHPBB is gelukkig nog niet af. Ik zal deze meteen plaatsen in de door jou aangegeven buglist.
Want deze bug moeten we natuurlijk gaan fixen.
Ja, het kan echt en het is ook nog eens kinderlijk eenvoudig!
Voorbeeld:
Orignele link van een nieuwe gebruiker: forum/profile.php?mode=activate&u=2771&act_key=7ad70b
Wijzig user 2771 bijvoorbeeld in u=15 dus forum/profile.php?mode=activate&u=6 ( dus zonder de achtervoegsels &act_key=7ad70b en het werkt!
User 15 wordt geactiveerd. Als dit geen bug is dan weet ik het niet meer. PHPBB is gelukkig nog niet af. Ik zal deze meteen plaatsen in de door jou aangegeven buglist.
Want deze bug moeten we natuurlijk gaan fixen.
Laatst gewijzigd door immers op 23 okt 2005, 19:38, 5 keer totaal gewijzigd.
Ik ga eens even in de code kijken, maar geloof nog steeds niet dat het kan 
EDIT:
haal ik uit usercp_activate.php
Het is dus niet mogelijk om de user_id te veranderen, BEHALVE als de activate ID hetzelfde is, en die kans lijkt me erg klein.

EDIT:
Code: Selecteer alles
$sql = "SELECT user_active, user_id, username, user_email, user_newpasswd, user_lang, user_actkey
FROM " . USERS_TABLE . "
WHERE user_id = " . intval($HTTP_GET_VARS[POST_USERS_URL]);
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
if ( $row['user_active'] && trim($row['user_actkey']) == '' )
{
$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="10;url=' . append_sid("index.$phpEx") . '">')
);
message_die(GENERAL_MESSAGE, $lang['Already_activated']);
}
else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
{
Het is dus niet mogelijk om de user_id te veranderen, BEHALVE als de activate ID hetzelfde is, en die kans lijkt me erg klein.
Hmmm. Maar als je de code verder bekijkt, zie je:
Dus de activation code wordt ge-reset na het activeren. En dan kom je met een lege activation key wel degelijk door het if statement (HTTP_GET_VARS['act_key'] is immers leeg)...!
Overigens zit deze 'feature' (om de activation code leeg te maken) ook in het admin deel van het bord. Bijvoorbeeld in admin_users_inactive.php:
Wellicht een bug in het de-activeren van een gebruiker?
Code: Selecteer alles
$sql = "UPDATE " . USERS_TABLE . "
SET user_active = 1, user_actkey = ''" . $sql_update_pass . "
WHERE user_id = " . $row['user_id'];

Code: Selecteer alles
else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
Overigens zit deze 'feature' (om de activation code leeg te maken) ook in het admin deel van het bord. Bijvoorbeeld in admin_users_inactive.php:
Code: Selecteer alles
$sql = "UPDATE " . USERS_TABLE . " SET user_active = 1, user_actkey = '' WHERE user_id=$to_userdata AND user_id <> " . ANONYMOUS ;
Wellicht een bug in het de-activeren van een gebruiker?
Als die leeg zou zijn, zou deze code niet uitgevoerd wordenfrop schreef:Hmmm. Maar als je de code verder bekijkt, zie je:
Dus de activation code wordt ge-reset na het activeren. En dan kom je met een lege activation key wel degelijk door het if statement (HTTP_GET_VARS['act_key'] is immers leeg)...!Code: Selecteer alles
$sql = "UPDATE " . USERS_TABLE . " SET user_active = 1, user_actkey = ''" . $sql_update_pass . " WHERE user_id = " . $row['user_id'];
![]()

Ik kan die hele file niet vinden, ik neem aan dat je bedoelt admin_users.php, wanneer daar een user geactiveerd wordt, wordt er automatische een lege string toegekent, zodat een gebruiker hem niet nogmaals hoeft te activeren.frop schreef:Code: Selecteer alles
else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != ''))
Overigens zit deze 'feature' (om de activation code leeg te maken) ook in het admin deel van het bord. Bijvoorbeeld in admin_users_inactive.php:
Code: Selecteer alles
$sql = "UPDATE " . USERS_TABLE . " SET user_active = 1, user_actkey = '' WHERE user_id=$to_userdata AND user_id <> " . ANONYMOUS ;
Het is geen bug, de code is gewoon goed.frop schreef: Wellicht een bug in het de-activeren van een gebruiker?
Hallo lieve mensen,
Het probleem is nogsteeds niet opgelost en het ziet er echt uit dat het een phpbug is. Ondertussen gaat het bij ons als een lopend vuurtje en zet iedereen profielen van anderen te activeren. Dat kan toch niet de bedoeling zijn. Erg vreemd dat na al die jaren niemand eerder op het idee is gekomen of deze bug heeft ontdekt.
Nu maar hopen op een snelle bugfixs.
Groetjes,
Immers
Het probleem is nogsteeds niet opgelost en het ziet er echt uit dat het een phpbug is. Ondertussen gaat het bij ons als een lopend vuurtje en zet iedereen profielen van anderen te activeren. Dat kan toch niet de bedoeling zijn. Erg vreemd dat na al die jaren niemand eerder op het idee is gekomen of deze bug heeft ontdekt.
Nu maar hopen op een snelle bugfixs.
Groetjes,
Immers