Trouvé un gros bug dans mon code

  • camperjohn
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Nov 28, 2004
  • Messages: 1127
  • Loc: San Diego
  • Status: Offline

Message Décembre 11th, 2009, 2:49 pm

C'est moi, ou avez-vous également obtenir que «aahhhhh...«Sentiment quand vous avez enfin trouver enfin un bug, qui a été mise sur écoute vous pendant une longue période. Dans mon cas, ANNÉES ce bogue stupide a causé la CSS et les images sur mon (45,000) des sites Web pour, parfois, de temps en temps, une vis jusqu'à l'ensemble du site.

Aujourd'hui, je l'ai trouvé. Oh man its better than anything. J'ai besoin d'un verre!

Hot Chocolate est ma boisson. Im so exciting.
Upload video and picture galleries at http://www.bodydot.com?post+upload+video+picture+gallery
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Décembre 11th, 2009, 2:49 pm

  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Décembre 11th, 2009, 7:14 pm

Congrats sur la finale de la chasse.

Quote:
"La patience est une vertu"

Est un cliché, mais appropriée.
I'd love to change the world, but they won't give me the source code.
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Décembre 12th, 2009, 10:24 pm

Voulez-vous décrire le bogue? Im curieux :D
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • camperjohn
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Nov 28, 2004
  • Messages: 1127
  • Loc: San Diego
  • Status: Offline

Message Décembre 13th, 2009, 10:42 am

Stupid bug vraiment.

J'ai environ 45.000 domaines hébergés à rentyourdot.com, avec environ 100 modèles. Les noms de fichiers étaient accessibles en utilisant quelque chose comme / images / template / filename.filetype.

Par exemple, / images / redtemplate / header.jpg

Je ne voulais pas que Google se rendre compte que les 45.000 sites de je que beaucoup d'entre eux avaient le même gabarit. Donc l'une des nombreuses choses que j'ai faite a été retirer le nom du modèle dans tous les modèles, de sorte que les images et les fichiers CSS semblait maintenant être générique plutôt que tous en provenance d'un dossier. Je me suis fait attraper des modèles, basés sur un identifiant de session et ensuite consulté les fichiers par

/ images / header.jpg

Ensuite, j'ai utilisé de réécriture d'URL pour modifier l'emplacement de l'image / images / header.jpg to / images / redtemplate / header.jpg

Cela signifie, que deux modèles différents, pourrait à la fois l'accès / images / en-tête. jpg, mais ils obtenir des images différentes. Cela a été correct.

Par exemple,

/ images / header.jpg -> / images / rouge template / header.jpg si la personne a utilisé le modèle rouge
/ images / header.jpg -> / images / bleu template / header.jpg si la personne a utilisé le modèle bleu

Ce fut travaille la plupart du temps. Cependant il y avait la possibilité qu'il y avait effectivement des collisions dans le système de cache MD5, parce que j'ai été en utilisant le nom court pour déterminer le nom du fichier cache, et non la version longue

à savoir:

si la personne a utilisé le modèle rouge
/ images / header.jpg -> / images / rouge template / header.jpg -> md5 (/ images / header.jpg) -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg

si la personne a utilisé le modèle bleu
/ images / en-tête. - jpg> / images / bleu template / header.jpg -> md5 (/ images / header.jpg) -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg

MEME MD5! Cela signifie que si le fichier a été mis en cache, le modèle rouge, montrait des images bleues. Lorsque le cache expire, il serait bon travail, et le bleu templates montrer des images rouge.

Comme la plupart du temps, le MD5 n'aurait pas les collisions dans le nom de cache, il travaillerait pour la plupart des fichiers, à savoir:

/ images / en-tête. jpg (redtemplate)
/ images/header2.jpg (bluetemplate)

Maintenant, il n'y aurait pas une collision dans le codage MD5.

Est-ce que tout cela un sens? Ce que je veux en venir est, j'aurais été en utilisant le nom MD5 du nom de l'image cible, pas le nom de l'image source.

/ images / redtemplate / header.jpg -> e4d909c290d0fb1ca068ffaddf22cbd0.jpg
/ images / bluetemplate / header.jpg -> d41d8cd98f00b204e9800998ecf8427e. jpg

Voici ce que le bug est descendu à:

cname = md5 ($ sName) $;

VS:

cname = md5 ($ dname) $;

Une différence lettre (VS source destination) signifiait le mauvais nom a été utilisé et tout a fonctionné à 99% du temps, au lieu de 100% du temps.

Je dispensés du trouverez ce pour la vie de moi!

Voici un exemple de celui-ci fonctionne correctement (nom du modèle est yeso):

http://www.photofight.com/images/yeso/smile.gif

Remapped (nom du modèle est encore yeso, mais vous ne voyez pas le remappage):

http://www.photofight.com/images/smile.gif
Upload video and picture galleries at http://www.bodydot.com?post+upload+video+picture+gallery
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Décembre 13th, 2009, 11:31 am

Nice find. Je dois dire, cependant, vous avez utilisé l'OMI avait quelque chose d'un peu plus descriptif que sname vs dname, cela pourrait ne pas avoir grandi dans un tel défi. Il ya certainement des avantages à l'utilisation de conventions.
I'd love to change the world, but they won't give me the source code.
  • camperjohn
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Nov 28, 2004
  • Messages: 1127
  • Loc: San Diego
  • Status: Offline

Message Décembre 13th, 2009, 5:41 pm

Eh bien le problème est le système est énorme, et cet élément était si simple, évident, chaque fois que j'ai regardé le code, j'ai pensé "Bien sûr, son nom d'origine. Même si je savais ce qui se passait, je pensais que c'était la bonne chose.

Si je l'avais marqué source_name $ et $ destination_name, j'aurais encore fait la même bogue, car ils bogue a été, dans ma pensée - ce n'était pas juste une faute de frappe.

Je pense qu'il revient à ne pas être en mesure d'intervenir grâce à PHP de la même manière vous pouvez avancer dans C + +. Si je pouvais avoir la touche F11 comme dans MSVC + +, je l'ai vu en utilisant la bonne valeur.
Upload video and picture galleries at http://www.bodydot.com?post+upload+video+picture+gallery
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Décembre 13th, 2009, 8:02 pm

C'est un tel bug mineur qu'il est imperceptible. J'ai fait beaucoup de ces types d'erreurs, mais avec joie tous ces systèmes étaient petites et celles que j'ai écrit à partir de zéro.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Décembre 13th, 2009, 8:42 pm

Quote:
Je pense qu'il revient à ne pas être en mesure d'intervenir grâce à PHP de la même manière vous pouvez avancer dans C + +. Si je pouvais avoir la touche F11 comme dans MSVC + +, je l'ai vu en utilisant la bonne valeur.


Zend essayé avec Xdebug avant? Vous pouvez obtenir certains résultats de Nice l'exécution avec la liste déroulante.
I'd love to change the world, but they won't give me the source code.
  • Michael william
  • Beginner
  • Beginner
  • No Avatar
  • Inscription: Aoû 24, 2009
  • Messages: 45
  • Status: Offline

Message Décembre 15th, 2009, 2:45 am

Congrats...Nice trouver par vous. Enfin vous avez trouvé le bug. Pouvez-vous décrire?
  • casablanca
  • Proficient
  • Proficient
  • Avatar de l’utilisateur
  • Inscription: Mai 29, 2007
  • Messages: 481
  • Status: Offline

Message Décembre 15th, 2009, 7:58 pm

Oui, c'est toujours "Aahhh...«En particulier avec ceux-dure à suivre les bugs que vous tracez finalement à une seule ligne de code. (Ou dans votre cas, un seul caractère :D )
No Strings Attached: A JavaScript graphics demo.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Février 17th, 2010, 3:54 am

Quote:
Je ne voulais pas que Google se rendre compte que les 45.000 sites de je que beaucoup d'entre eux avaient le même gabarit. Donc l'une des nombreuses choses que j'ai faite a été retirer le nom du modèle dans tous les modèles, de sorte que les images et les fichiers CSS semblait maintenant être générique plutôt que tous en provenance d'un dossier.


Cette remarque m'a toujours mis sur écoute, et aujourd'hui je n'ai pas pu m'empêcher de me demander ce que Google pense aux plusieurs milliers de sites qui utilisent tous phpBB / VBulitin / thèmes par défaut, etc out there. Même un lot de la non-thèmes par défaut sont un peu les thèmes par défaut avec différents fichiers CSS. :)
Strong with this one, the sudo is.

Afficher de l'information

  • Total des messages de ce sujet: 11 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 85 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC