Le problème se résume à comment PHPBB gère les sessions et le fait que vous utilisez AOL. Si vous deviez utiliser un autre fournisseur d'accès Internet AOL autre que vous n'auriez probablement pas avoir eu ce problème.
Ce poste à phpBB. com explique exactement pourquoi ce problème est survenu:
À l'origine en réponse à la session non valide
Im allant à expliquer la situation une fois de plus et plus jamais ensuite...
phpBB utilise des sessions de «tracer» les utilisateurs qui se déplacent entre les pages, de forums, de sujets, etc Une session est composée d'un session_id unique de 32 caractères qui identifie les utilisateurs actuels. Cette valeur est stockée dans la table des sessions ainsi que d'un temporaire (ie sa supprimés lorsque la fenêtre du navigateur est fermé) cookie sur l'ordinateur de l'utilisateur ou si cela ne semble pas y avoir de travail de ses joint à toutes les URLs.
Le problème avec l'utilisation de seulement un session_id est qu'il devient très facile de détourner (OPA) d'une session. Tout ce qu'un utilisateur doit faire est d'obtenir le session_id et ajoutez-le à l'URL lorsqu'ils visitent le conseil. Si l'ID ils saisissent ce ne soit un connecté en admin ou le modérateur...bien, vous obtenez l'image.
Ce que nous faisons pour aider à compliquer la situation est également attacher la session pour les utilisateurs de propriété intellectuelle. En utilisant cette méthode quelqu'un aurait besoin d'usurper une adresse IP et d'obtenir le session_id dans le but de détourner une session, pas incroyablement difficile, mais certainement plus difficile...et avec ce genre de logiciel de son vraiment un cas plus difficile de faire tout à faire, donc tous les disuading mais le «plus ardents pirates" de prendre la peine de tenter quelque chose.
Comment pouvons-nous obtenir cette IP? Nous vérifions la disponibilité de deux variables, REMOTE_ADDR et HTTP_X_FORWARDED_FOR. Tout d'abord nous vérifions HTTP_X_..., Elle est généralement fixée par "gentil" proxies, caches, etc, et contient "une adresse IP", qui mai être les utilisateurs IP «réelle» ou quelque autre IP. Si cela n'existe pas ou qu'elle contient une société privée ou restreinte plage d'adresses IP (plusieurs blocs d'adresses IP sont réservées par les instances internationales responsables de l'attribution de la propriété intellectuelle), nous utilisons plutôt la valeur contenue dans REMOTE_ADDR. Cette variable contient généralement les utilisateurs réels de propriété intellectuelle.
Toutefois, des problèmes surgissent avec la façon dont certains FAI exploitent leurs systèmes. Au lieu de transmettre les utilisateurs réels de propriété intellectuelle ou même une adresse IP statique différente mais ils font tout simplement disponible que l'IP du proxy en cours d'exploration. Les gros FAI n'utilisent pas de proxy ou de cache unique, la charge sur elle et les données qui circulent à travers elle serait beaucoup trop grand. Au contraire, ils utilisent plusieurs systèmes dans une ferme "proxy" (j'ai tendance à s'y référer comme quelque chose qui contient la plupart de ces lettres...). Un utilisateur à naviguer sur le web mai être commutée entre ces machines d'une page à l'autre (pour aider à distribuer la charge), avec l'IP changeante comme ils vont.
Évidemment un problème alors que la capacité existe dans phpBBs d'attacher une session des utilisateurs à un ID unique et une adresse IP échoue...parce que l'IP est en constante évolution. Il ya quelques "nice" FSI là-bas qui vont à ces exploitations au sein d'une seule «classe» ou un bloc d'IP, par exemple, 1.2.3.4, 1.2.3.5, 1.2.3.6, etc
C'est pourquoi, dans une précédente version de phpBB nous avons introduit une légère réduction IP système de contrôle qui vérifie maintenant que les trois premières «quads» d'une enquête, soit 1.2.3.4 n'est vérifiée que pour 1.2.3 la figure 4 est jeté. Rappelez-vous, qu'une adresse IPv4 est 32 bits de large, ce sont généralement présentées sous la forme de quatre nombres de 8 bits. En cochant simplement les trois premiers chiffres (24bits) nous négligeons 8 bits ou 255 (253 en pratique) IPs possible...thats 253 procurations distinctes potentiels...IOW machines suffisant pour pratiquement tous les FAI sur la planète. Toutefois, nous pouvons aller plus loin et réduire ce contrôle à un peu le premier "deux quads", qui ignore 255 * 253 IPS!
Le problème est que certains fournisseurs d'accès ne pas organiser leur allocation IP particulièrement bien, soit pour des raisons historiques ou autres...AOL est l'un coupable significannot. Donc ce qui arrive est que les utilisateurs peuvent sauter entre une classe complètement différent (c'est un bloc de 32 bits intégral IP) réseaux, par exemple 100.100.100.100 à 200.100.40.40, etc Cela rend la validation IP totalement inutile pour de telles situations
Alors vous demandez: «D'accord, mais pourquoi avez-2.0. 3 Cause pas toutes ces erreurs Invalid_session? ". La réponse est assez simple. Lorsque vous phpBB première visite (en supposant que vous avez activé la connexion automatique), il attend de voir si vous avez un session_id (soit dans un cookie ou l'URL). Sur une nouvelle visite, vous n'aurez pas une telle session_id et ainsi de phpBB crée une nouvelle. Si vous avez mis en autologin il vérifie les données pertinentes et si cela vous correspond êtes connecté avec le user_id appropriées. Tâches Vous pouvez ensuite consulter immédiatement le conseil d'administration et affichent des messages, ne admin (le cas échéant), etc
Jetons maintenant une situation où une personne méchante crée un formulaire bidon sur leur site. Vous êtes (pour une raison quelconque) navigant sur ce formulaire. Toutefois, inconnu à vous ce formulaire contient toutes les données nécessaires pour supprimer un tas de sujets dans un forum donné (que vous ayez les droits de modération sur un bord de certains). Lorsque vous soumettez ce formulaire, il sera transmis au site Web approprié. Pas de session existe pour phpBB, tel que noté ci-dessus crée un nouveau et traite immédiatement le formulaire de données...tous les sujets pertinents sont supprimés de la base de données et vous ne trouvez que lorsque les panneaux "Les sujets sélectionnés ont été supprimés» s'affiche...
Pour aider à nier l'efficacité de cette rétro-nous un peu de code de phpBB 2.2 et introduit de code supplémentaire. Le panneau de contrôle admin ajoute maintenant votre session_id à chaque URL. Lorsque vous naviguez au sein de ce Comité, il vérifie la session_id dans l'url avec celle stockée dans la table des sessions. Si elles correspondent, de grand, si elles ne vous redirige pas revenir à l'index des pays ACP. Cela aidera à prévenir les utilisateurs accidentellement, sans que leurs problèmes de la souffrance des connaissances comme l'a noté ci-dessus.
De même, le panneau de contrôle modérateur a le session_id annexés à des URL et effectue une vérification. La différence ici est qu'il suscite toute une session Blancs Si l'IDS ne correspondent pas, notez que la redirection comme le wouldnt panel d'administration de modifier le résultat ici...Si vous avez essayé de soumettre les données via le MCP avec une session non valide youd seulement être retournés à la page de couverture MCP...perdre toutes les données saisies précédemment. D'autres questions avec le vote et l'affichage ont également été abordés grâce à un utilisateur concerné en nous avisant. Ainsi, des contrôles similaires ont été mis en place.
Le problème est que pour les utilisateurs dont la session est sans cesse renouvelé en raison de leur propriété intellectuelle changer ce niveau supplémentaire de contrôle peuvent causer des problèmes. Pour de nombreux fournisseurs de services Internet a noté le changement de 6 à 4 dans la vérification de validation IP sera suffisante...Toutefois cultures AOL-vous (comme d'habitude dans presque toutes les situations similaires avec tous les logiciels...) Que le pouce endolori.
"Que pouvez-vous faire?" mai vous demander, très peu est la réponse. On pourrait supprimer la validation supplémentaire, mais qui laisse un vide qui franchement Im pas disposé à laisser...s'il n'avait pas abordé ce je ferais un beau pari qu'à un moment donné on se serait proche avenir si les usagers avaient en criant et hurlant sur la façon dommages ont été causés à leurs conseils et pourquoi n'avons-nous pas (phpBB) le fixer si nous savions à ce sujet
Quoi d'autre pouvons-nous faire? Comme je l'ai dit, très peu qui n'aura aucun impact sur les utilisateurs ne sont pas affectés par ce problème (dont Im paris il existe un grand nombre)...dans phpBB 2.2, nous introduisons une fonctionnalité permettant de définir le niveau de la validation de la propriété intellectuelle par les pays ACP, y compris le désactiver complètement. Invalidantes Toutefois IP de validation, comme l'a noté laisser vos utilisateurs ouvrent au détournement simplifiée. Pour beaucoup, ce mai pas être un problème et pourrait donc être une solution. Pour cela, dans phpBB 2. 0 Vous devez soit supprimer le code de validation de sessions.php ou changer les 6 à un 0 (les lignes concernées sont indiquées dans cette rubrique). Soyez conscient de ce que vous faites bien et de se taire à ce sujet...si les gens ne connaissent pas la propriété intellectuelle de validation n'est pas opérationnelle qu'ils mai à y croire encore. Si vous avez des problèmes de sécurité que vous pouvez suivre les sessions utilisateurs détournés nous ne voulons pas le savoir
Nous pourrions introduire un changement à des séances où ce qui se passe quand une nouvelle session est créée est "affaiblie". Qu'est-ce que je veux dire par affaibli? Eh bien, à l'heure actuelle, nous générons une nouvelle session chaque fois que nous ne pouvons pas valider une entreprise existante. Au lieu de cela ce que nous pourrions faire est de comparer les utilisateurs actuels session_id (s'ils en ont un) avec celui de la base. Si une correspondance est trouvée et l'écart de temps est une "petit" nombre nous continuons, au lieu de cette session. Le problème ici est que son tout aussi ouverte aux détournements que la suppression de la propriété intellectuelle de validation. Pourquoi? Parce que cette vérification sera ignorer les utilisateurs de la propriété intellectuelle et ne s'intéresse qu'à la session_id...et n'est donc pas quelque chose Im désireux de admin sans contrôle direct.
Nous pourrions, selon un Mod nouveau repris ailleurs sur le plateau, ne pas tenir compte de la propriété intellectuelle de validation lorsque les utilisateurs IP se trouve dans une liste donnée. Bien que ce n'est pas aussi mauvaise que la suppression de validation complète de son pas très loin. Pourquoi? Parce qu'au lieu d'avoir à aller à quelques problèmes pour les utilisateurs actuels d'obtenir une IP, vous pouvez à la place (étant donné que vous connaissez un utilisateur se connecte via un fournisseur d'accès ou donné procuration) Regardez-le...vous avez encore besoin de le spoof, mais une étape a été enlevée...et comme indiqué précédemment tout ce que nous pouvons faire, c'est rendre ces peuples vie plus difficile. Il ya des questions supplémentaires à la charge de traitement nécessaire (quel mai mai ou ne pas être significannot selon le nombre d'adresses IP, les utilisateurs de la navigation, etc) et de tenir la liste à jour.
Nous pourrions ajouter une série aléatoire de caractères alphanumériques à chaque page, en changeant la valeur de celui-ci à chaque page sur l'écran et de stocker les nouvelles données dans la table des sessions. Ce serait ajouter une protection, car un pirate de l'air ne serait pas seulement besoin des session_id mais aussi l'identifiant unique actuel. De toutes les idées c'est probablement mon préféré mai et en faire une version future (à moins que Ive a manqué quelque chose d'évident qui rend inutile ou mauvais pour la performance!).
«D'accord, très bien, mais que pouvons-nous faire maintenant?" Je vous entends dire. Eh bien, vous pouvez supprimer ou de réduire de validation comme indiqué ci-dessus (en étant conscient de ce que vous faites), vous pouvez ajouter le Mod a noté ci-dessus (vous le trouverez bientôt dans un autre thème de la session Blancs...aucun doute, il sera déplacé à l'un des forums Mod dans le temps) ou, enfin, vous pouvez retirer le morceau de code (de toutes les pages concernées) qui ressemble ou similaire à ceci:
// session id check
if ($sid == '' || $sid != $userdata['session_id'])
{
message_die(GENERAL_ERROR, 'Invalid_session');
}
- // session id check
- if ($sid == '' || $sid != $userdata['session_id'])
- {
- message_die(GENERAL_ERROR, 'Invalid_session');
- }
Cela supprime la garantie supplémentaire de la validation si vous ne nous en sommes pas intéressés à toute sécurité les problèmes connexes qui se posent mai. Je recommande fortement que vous ne supprimez pas la sécurité supplémentaire à partir du panneau de contrôle admin.
Voilà, c'est juste de quoi couvrir je pense qu'il...
Selon cet article, je pouvais enlever le morceau de code qui serait sans doute de résoudre le problème pour vous, mais il permettrait de réduire la sécurité de ce conseil par une bonne affaire. Je ne suis pas prêt à le faire en ce moment.