Question

J'utilise actuellement un forum PHPBB2 pour une section de l'un de mes sites et j'aimerais étendre ce site (ajouter de nouvelles pages, scripts, etc.). J'aimerais limiter l'accès à ces pages aux utilisateurs déjà connectés au forum PHPBB2.

En fait, si seuls les membres d'un certain groupe de membres pouvaient accéder à ces pages, ce serait formidable.

Existe-t-il un moyen d'utiliser les mêmes identifiants de connexion sur le reste de mon site et de vérifier les groupes dont sont membres les membres?

Merci

(au fait, ces pages sont en PHP)

Était-ce utile?

La solution

Si un utilisateur est connecté à PHPBB, il y a de bonnes chances, bien que pas toujours probable, qu'il contienne un cookie que vous pourrez lire et vous aidera à vérifier qui est qui dans la base de données.

Dans ce cas, vous aurez envie de casser les miettes du cookie ci-dessous:

Si un utilisateur est connecté à PHPBB, il y a de bonnes chances, bien que pas toujours probable, qu'il contienne un cookie que vous pourrez lire et vous aidera à vérifier qui est qui dans la base de données.

Dans ce cas, vous aurez envie de casser les miettes du cookie ci-dessous:

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

Utilisons un exemple et supprimons-le pour trouver les données que nous devons interroger dans la base de données. Ci-dessous se trouve le morceau trouvé dans le cookie ci-dessus:

 $goo = unserialize(

Si un utilisateur est connecté à PHPBB, il y a de bonnes chances, bien que pas toujours probable, qu'il contienne un cookie que vous pourrez lire et vous aidera à vérifier qui est qui dans la base de données.

Dans ce cas, vous aurez envie de casser les miettes du cookie ci-dessous:

Si un utilisateur est connecté à PHPBB, il y a de bonnes chances, bien que pas toujours probable, qu'il contienne un cookie que vous pourrez lire et vous aidera à vérifier qui est qui dans la base de données.

Dans ce cas, vous aurez envie de casser les miettes du cookie ci-dessous:

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

Utilisons un exemple et supprimons-le pour trouver les données que nous devons interroger dans la base de données. Ci-dessous se trouve le morceau trouvé dans le cookie ci-dessus:

SELECT pug.user_id FROM phpbb_user_group pug 
 LEFT JOIN phpbb_groups g 
 ON pug.group_id=g.group_id
 WHERE pug.user_id='$extracted_id'
 AND g.group_name='Foo';

Pour cela, vous aurez intérêt à extraire ce "3". qui correspond à l'utilisateur connecté en PHPBB.

Désérialiser ces données pour extraire cet utilisateur:

<*>

(Merci à epochwolf pour avoir signalé la forme sérialisée ci-dessus de ce cookie)

Ce nombre sera utile pour la base de données afin de déterminer le groupe auquel appartient le membre. Et vous feriez la vérification avec la table phpbb_user_group (si vous aviez phpbb_ comme préfixe de vos tables de forum.)

Si vous ne voulez pas garder trace des identifiants de groupe de la base de données, vous devrez faire une sorte de jointure et tester le nom. Peut-être que quelque chose comme ça:

<*>

Si vous pouvez en extraire une ligne, vous avez alors trouvé vous-même un utilisateur connecté qui appartient à ce groupe Foo.

COOKIE["phpbb2mysql_data"]

Utilisons un exemple et supprimons-le pour trouver les données que nous devons interroger dans la base de données. Ci-dessous se trouve le morceau trouvé dans le cookie ci-dessus:

<*>

Pour cela, vous aurez intérêt à extraire ce "3". qui correspond à l'utilisateur connecté en PHPBB.

Désérialiser ces données pour extraire cet utilisateur:

<*>

(Merci à epochwolf pour avoir signalé la forme sérialisée ci-dessus de ce cookie)

Ce nombre sera utile pour la base de données afin de déterminer le groupe auquel appartient le membre. Et vous feriez la vérification avec la table phpbb_user_group (si vous aviez phpbb_ comme préfixe de vos tables de forum.)

Si vous ne voulez pas garder trace des identifiants de groupe de la base de données, vous devrez faire une sorte de jointure et tester le nom. Peut-être que quelque chose comme ça:

<*>

Si vous pouvez en extraire une ligne, vous avez alors trouvé vous-même un utilisateur connecté qui appartient à ce groupe Foo.

COOKIE["phpbb2mysql_data"]); $extracted_id = $goo["userid"];

Pour cela, vous aurez intérêt à extraire ce "3". qui correspond à l'utilisateur connecté en PHPBB.

Désérialiser ces données pour extraire cet utilisateur:

<*>

(Merci à epochwolf pour avoir signalé la forme sérialisée ci-dessus de ce cookie)

Ce nombre sera utile pour la base de données afin de déterminer le groupe auquel appartient le membre. Et vous feriez la vérification avec la table phpbb_user_group (si vous aviez phpbb_ comme préfixe de vos tables de forum.)

Si vous ne voulez pas garder trace des identifiants de groupe de la base de données, vous devrez faire une sorte de jointure et tester le nom. Peut-être que quelque chose comme ça:

<*>

Si vous pouvez en extraire une ligne, vous avez alors trouvé vous-même un utilisateur connecté qui appartient à ce groupe Foo.

COOKIE["phpbb2mysql_data"]

Utilisons un exemple et supprimons-le pour trouver les données que nous devons interroger dans la base de données. Ci-dessous se trouve le morceau trouvé dans le cookie ci-dessus:

<*>

Pour cela, vous aurez intérêt à extraire ce "3". qui correspond à l'utilisateur connecté en PHPBB.

Désérialiser ces données pour extraire cet utilisateur:

<*>

(Merci à epochwolf pour avoir signalé la forme sérialisée ci-dessus de ce cookie)

Ce nombre sera utile pour la base de données afin de déterminer le groupe auquel appartient le membre. Et vous feriez la vérification avec la table phpbb_user_group (si vous aviez phpbb_ comme préfixe de vos tables de forum.)

Si vous ne voulez pas garder trace des identifiants de groupe de la base de données, vous devrez faire une sorte de jointure et tester le nom. Peut-être que quelque chose comme ça:

<*>

Si vous pouvez en extraire une ligne, vous avez alors trouvé vous-même un utilisateur connecté qui appartient à ce groupe Foo.

Autres conseils

Utilisez la table utilisateur de PHPBB2 et ses identifiants de connexion et de permissions dans les autres pages. C'est sale mais ça marche.

En utilisant le code PHPBB2, je veux dire:

Creusez dans le code PHPBB2, déterminez comment PHPBB2 authentifie les utilisateurs et copiez les fragments de code pertinents. Si PHPBB2 est correctement structuré, vous pourrez peut-être simplement inclure quelques fichiers à partir de PHPBB2 et les utiliser sans travail de piratage majeur. Si ce n'est pas bien structuré, ça va être sale et moche.

N'oubliez pas de tester vos nouveaux ajouts sécurisés sur votre site Web! Assurez-vous de bien faire les choses.

Vous pouvez utiliser directement les tables d'utilisateurs et de groupes de phpBB 2. Si je me souviens bien, la colonne de mot de passe est simplement un md5 () du mot de passe actuel.

Cette astuce ne fonctionne plus dans phpBB3, car le mot de passe est (enfin) salé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top