2010-01-12 9 views
0

J'ai reçu lien étrange DÉFECTUEUX:Demande brisée (ou rapport "lien brisé" dans Django)?

Subject: Broken link on googleads.g.doubleclick.net 

Referrer: (url on **my** site!) 
Requested URL: /pagead/ads?(...) 
User agent: (...) 
IP address: (some foreign country) 

Je pris un coup d'œil à CommonMiddleware, responsable de l'envoi de ces rapports. Il va comme ceci (Django 1.1 license appliquer ici;)):

if response.status_code == 404: 
     if settings.SEND_BROKEN_LINK_EMAILS: 
      # If the referrer was from an internal link or a non-search-engine site, 
      # send a note to the managers. 
      domain = request.get_host() 
      referer = request.META.get('HTTP_REFERER', None) 
      is_internal = _is_internal_request(domain, referer) 
      path = request.get_full_path() 
      if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer): 
       ua = request.META.get('HTTP_USER_AGENT', '<none>') 
       ip = request.META.get('REMOTE_ADDR', '<none>') 
       mail_managers("Broken %slink on %s" % ((is_internal and 'INTERNAL ' or ''), domain), 
        "Referrer: %s\nRequested URL: %s\nUser agent: %s\nIP address: %s\n" \ 
           % (referer, request.get_full_path(), ua, ip)) 

Le code est si simple qu'il est tout à fait évident que dans l'e-mail que j'ai reçu Référent est remplacée par hôte et demande URL. Je ne suis pas sûr de ce que cela signifie - si c'était un essai bidouille, un bug dans Django ou peut-être un bug dans mon code (FYI: Django n'a pas été corrigé et les autres emails broken link sont corrects).

Avez-vous une idée de ce qui pourrait ne pas fonctionner ici?

+0

Voulez-vous dire que le code de Django que vous avez envoyé brisé? Ça me va bien ... –

+0

Non, je suis en train de dire le contraire - le code de Django semble être parfaitement OK, mais pour une raison quelconque j'ai reçu un référent échangé avec l'hôte .. Quoi qu'il en soit, hier quelque chose de similaire s'est passé pour la deuxième fois. C'est marrant, c'est que c'était de la même IP. Est-il possible qu'un pirate ait troqué ces champs et que cela n'ait rien à voir avec Django? –

Répondre

0

n'est pas permuté. le référent est votre site, car il ya des hits sur votre site, comme http://www.reddit.com/domain/googleads.g.doubleclick.net

tout va bien avec le rapport, peut-être vous avez juste été confus parce que l'URL qu'il essaie de frapper ressemble à un domaine externe. Voici quelques discussions sur le sujet, en fait vous n'êtes pas le seul qui a été frappé avec de tels liens (googleads.g.doubleclick.net google a obtenu plus de la moitié des résultats mil, la plupart avec des erreurs étranges sur les sites Web)

si Je me trompe, fournissons peut-être plus de détails sur les urls, mais je pense que tout va bien ici.

http://www.google.com/support/googleanalytics/bin/answer.py?hlrm=pl&answer=55581 http://www.google.com/support/forum/p/Google+Analytics/thread?tid=200cb2d4021f93ce&hl=en

+0

Je sais que * googleads.g.doubleclick.net * est parfaitement * referrer * valide, mais je l'ai eu comme chemin d'URL sur mon site. Et dans HTTP_REFERER il y avait aussi ma propre URL interne. –