php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.08.2008, 15:21  
Neuer Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 4
ph*p_j_fry befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Produziert (google)bot Echos bei geänderter session_id?

Hallo,

ich habe ein Problem, das mglw. auf eine Bot-Aktivität zurückzuführen ist.

Ich habe ein Teilprogramm (PHP/Html-Code) von einer domain auf eine andere portiert.
Am Ende des Programmes (formular -> submit) werden 2 Emails mittels der Funktion mail (..) an 2 verschiedene Adressaten verschickt (je 1 Aufruf).

Seltsamerweise gehen aber nicht in jedem Fall genau 2 Mails raus, sondern
bis etwa 3, 4 weitere Mails, wobei der 1. Adressat 1 und der 2. Adressat alle anderen erhält. In dem betroffenen Programmabschnitt erfolgt auch ein Eintrag in die Datenbank, mit dem gleichen Effekt, dass genauso viele zusätzliche Einträge wie Emails generiert werden.
Wie ich sehen konnte, taucht das erste Echo (neben der eigentlichen Nutzeraktion) fast parallel auf und die weiteren folgen im Abstand von etwa 1 Minute.
Nun habe ich das Programm so gestaltet, dass die IP-Adresse aufgezeichnet wird. Dadurch konnte ich den vermutlichen Verursacher identifizieren:
IP: 66.249.72.129
ping: ... Ping crawl-66-249-72-129.googlebot.com [66.249.72.129]

Auf google.de/support/webmasters:

Wie verhindere ich, dass Googlebot Links auf meinen Seiten folgt?

habe ich schon nachgesehen und den dort angebotenen Codeschnipsel eingefügt
"<META NAME="Googlebot" CONTENT="nofollow">" und auch die anderen Versionen/Möglichkeiten (robots: nofollow, noindex).
Im Stammverzeichnis der betroffenen domain habe ich eine robots.txt angelegt, in der die verbotenen Dateien hinterlegt sind.
Aber irgendwie fruchtet das alles nicht.

Da die betroffene domain fremdverwaltet wird, kann ich auch nicht so recht sagen, ob vielleicht irgendeine spezielle Einstellung dafür verantwortlich ist. (Was ich feststellen konnte: Dort ist noch eine PHP-Version 4.4.8 eingestellt.)

Ich denke, einen Programmfehler ausschliessen zu können, da dieselbe Anwendung auf der ursprünglichen domain problemlos läuft. (Es sei denn, es gibt unter PHP 4.4.8 genau so einen Effekt.)


Meine Fragen dazu sind ...

... könnte es tatsächlich der googlebot sein, der die User-Clicks verfolgt und quasi Echos produziert (die deshalb auffallen, da durch das Programm, nach dem die Daten gespeichert wurden, die session_id geändert wurde)?
... könnte der googlebot mit einem session_destroy() kollidieren? (Habe ich mit einer Gegenprobe jedoch keinen Unterschied feststellen können.)
... ist unter PHP < 5 ein solcher Effekt bekannt???
... und wie kann ich dauerhaft/sicher diesem Effekt begegnen (außer vielleicht im Programmcode eine Zeile einfügen zu müssen, die Aufrufe von der obengenannten IP her unterbindet/abbricht)?

Danke im voraus!
fry
ph*p_j_fry ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.08.2008, 15:34  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Die Mails werden erst versendet, wenn man auf Submit klickt? Soweit mir bekannt, folgt Google bzw. dessen Bot sowie andere führende Suchmaschinen Bots keinen Formularen, also sie schicken keine Formulare ab.

Evtl ein Böser Bot, welcher sich als Google-Crawler ausgibt? Hast du mir / uns einen Quelltext auszug?

Grüße
Das Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
Alt 08.08.2008, 15:55  
Neuer Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 4
ph*p_j_fry befindet sich auf einem aufstrebenden Ast
Standard

Hallo psy,

was meinst Du mit Quelltextauszug? Bzw. wonach genau suchst Du?
Im Code steht nichts außergewöhnliches. (Also keine includes aus einer fremden domain, kein file-upload ...)
Das Programm macht nichts weiter als _REQUEST auslesen, verarbeiten ggf. in die DB schreiben,
aus der DB lesen und Inhalte für die folgende Seite breitstellen.
Und auf der (letzten) Seite erfolgt der Abschluss: mit session_destroy(); $_SESSION=array();
... und erst danach wird die Fremdaktivität sichtbar. (Es sei denn, hier würde sie erst ausgelöst?!? - Weshalb ich ursprünglich die mail-Funktion in Verdacht hatte.)
Es wird kein https benutzt.


Das mit dem "bösen Bot" habe ich auch noch als Vermutung ...
aber ich hoffte, dass dieser Effekt kein Einzelfall ist und bereits irgendwer Erfahrungen sammeln konnte.
Lässt sich ein "böser Bot" als solcher (ohne großen Aufwand) enttarnen?
(denn die IP, die ich habe, wäre ja gutartig.)
- Ich habe in diesem Zusammenhang schon bei Google unter "sitedomain-name)/(unterordner)..." nachgeforscht, ob die betroffenen Verzeichnise/Seiten/Dateien gelistet sind -> aber das sind sie nicht!

Sollte es tatsächlich ein "böser Bot" sein, kann dann der Hoster helfend eingreifen - irgendeinen Schutzmechanismus
installieren?

Gruß
fry.
ph*p_j_fry ist offline  
Alt 08.08.2008, 16:14  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

wenn du dein Formular so prüfst:

if($_REQUEST['Submit']) ....

dann kriegst du neben $_POST['Submit'] auch $_GET['Submit'] sowie $_COOKIE['Submit'] in die Abfrage.

Kann da vielleicht was passieren?
Wolla ist offline  
Alt 08.08.2008, 17:01  
Neuer Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 4
ph*p_j_fry befindet sich auf einem aufstrebenden Ast
Standard

Hallo Wolla,

hm, dass _COOKIE seine Hände im Spiel haben könnte, damit habe ich nicht gerechnet.
Aber andererseits müsste sich dieser Effekt in "seltsamen" Formulareingaben doch bemerkbar machen,
indem im Zweifelsfall ein neuer Wert durch einen alten (aus dem cookie) überschrieben wird.
(_REQUEST habe ich auch nur deshalb genommen, da in den "alten" Programmdateien nicht immer zwischen
_GET und _POST unterschieden wurde [der neue Programmcode basiert tw. auf altem Code].)

Tatsächlich werte ich nur die konkreten html-id-s der Felder des jeweiligen sendenden Formulares aus.
(Aber nicht den Button.)
Daher kann ich mir nicht vorstellen, dass sich so ein Feld für ein anderes ausgeben können soll ...
Was, denke ich, auch nicht die Vervielfachung im letzten Schritt (emails und db-entries) erklären könnte, oder?
(Denn das setzt wirklich eine Aktion, einen Datei-/Funktionsaufruf voraus ... 4x mit je 1 min. Differenz(!?!).)

Gruß
fry.
ph*p_j_fry ist offline  
Alt 11.08.2008, 11:13  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Ich meine, irgendwo im Quelltext dürfte doch die Mail verschickt werden. Diesen Quellcode teil hätte ich gern gesehen, auch den Teil wo du die Daten des Formulars überprüfst und evtl noch das Formular selbst, da ich so schlecht einblicke haben kann bzw. den Fehler nicht so finden kann unso

Also Quelltexte halt (aber nicht alles oder so, nur relevante Bereiche).

Grüße
Das Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
Alt 14.08.2008, 12:22  
Neuer Benutzer
 
Registriert seit: 08.08.2008
Beiträge: 4
ph*p_j_fry befindet sich auf einem aufstrebenden Ast
Standard

Hallo psy und hallo allen anderen Interessenten,

Good news everyone! as my dear grandgrand...grandnephew says ...

zwar habe ich die eigentliche Quelle des "Ungemachs" nicht ausfindig machen können, aber durch einen Codeschnipsel ähnlich dem folgendem Beispiel, eingebracht in der zentralen Datei der Anwendung - dem Einfallstor -, ließ sich die unerwünschte Aktivität nun unterbinden.

PHP-Code:
      $sUserHost    gethostbyaddr$_SERVER'REMOTE_ADDR' ] );
      
$domain       explode"."$sUserHost ); 
      
$domain_array count$domain ) - 2;
      if( 
$domain"$domain_array" ] == "googlebot" )
      {
        
// ... do some redirect ...
      

Möglicherweise lauscht der (google)Bot auf bestimmte Aktionen und versucht diese zu kopieren ...
Aber WIE das im Detail funktioniert und wie man diesem Treiben gezielt Einhalt bieten kann, ist mir (leider) unbekannt.

(Die oben angeführte Methode ist zwar probat, aber ich finde sie nicht wirklich elegant. Man ist bsplw. immer gezwungen, die Bezeichnungen [wie googlebot] zu aktualisieren/ergänzen.
-> Könnte mir aber vorstellen, dass es für solche Zwecke Scripte oder fertige, übersichtliche Listen u.a. mit den gesuchten Bezeichungen gibt.)


Vielen Dank allen Interessenten an diesem Thema.

Bis demnächst.
fry.


PS: Ich lasse dieses Thema noch für einige Tage offen, bevor ich es als "erledigt" kennzeichne ... für den Fall, dass jemand mit einer "eleganten" Lösung oder evtl. den oben genannten Listen/Scripten vorbeischaut.
ph*p_j_fry ist offline  
Alt 14.08.2008, 12:37  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erledigt != Geschlossen
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 14.08.2008, 13:24  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von PsychoEagle Beitrag anzeigen
Ich meine, irgendwo im Quelltext dürfte doch die Mail verschickt werden. Diesen Quellcode teil hätte ich gern gesehen, auch den Teil wo du die Daten des Formulars überprüfst und evtl noch das Formular selbst, da ich so schlecht einblicke haben kann bzw. den Fehler nicht so finden kann unso

Also Quelltexte halt (aber nicht alles oder so, nur relevante Bereiche).

Grüße
Das Psy
Ansonsten kann ich keine Alternative anbieten auf jeden Fall bist du schon ein wenig weiter gekommen, was ja nicht schlecht ist
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)
PsychoEagle ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
folgt google formularen?, php 5 google bot, google bot url anhänge, pingcrawl alternative, google bots session id php, guter formular bot, google bot folgt mir, googlebot php, php letzter geänderter wert, session_id crawler, über php formular die ip adresse ausfindig machen, google bot ip php

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum