WinFuture-Forum.de: Ungültige PHP Seiten in Logdateien gefunden - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Ungültige PHP Seiten in Logdateien gefunden Wie filtert man ungültige Unterseiten heraus?


#1 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 12:24

Hallo,

auf meiner privaten Homepage habe ich ein Statstik-Tool, genannt chcounter.
Ab und an entdecke ich Müll in der Statistik. Es werden Seiten geloggt, dies es eigentlich gar nicht gibt.

z.B.
wvw.BLABLA.de/index.php/bildergal2003/2003-06-20/bilder2004/2004-05-30/bilder2003/2003-06-01/index.php?page=home

Gebe ich dies im Browser ein, so kommt nahezu das gleiche wie bei

wvw.BLABLA.de/index.php?page=home

Nur manche Bilder usw können nicht richtig dargestellt werden.

Nun ist die Frage:
Wie kann ich es verhindern, das Bots oder Besucher solch einen Unfug eingeben können?
Es könnte dann eine 404 Fehlerseite angezeigt werden.
Sprich: Kann ich dies in der index.php herausfiltern?

Dieser Beitrag wurde von andreasm bearbeitet: 08. März 2011 - 12:26

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2011 - 14:21

Du überprüfst doch sicherlich entsprechende Variablen und Werte in deiner Datei. Dann kannst du doch ganz einfach, je nach Inhalt eine 404-Seite anzeigen bzw. zu einer weiterleiten.

In deiner .htaccess kannst du übrigens auch eine 404-Seite definieren, die automatisch ausgeliefert wird, falls deine Seiten einen 404er zurückliefern:
ErrorDocument 404 http://www.meineseite.de/404.html

0

#3 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 14:47

Klar prüfe ich Variablen, z.B. die page Variable. Das funktioniert ja.

Doch was auch immer zwischen index.php und ?page steht, bleibt einfach stehen.
Wie kann ich diesen Unfug dazwischen herausfiltern?

Ich weiß, dass ich die Daten hinter dem Fragezeichen ? mit der Request anweisung auslesen kann.
Doch wie frägt man nun das zwischen index.php und dem Fragezeichen ab?


Die 404 Fehlerseiten habe ich natürlich aktiviert, doch die Homepage wird ja trotz dem Unfug weiterhin angezeigt :unsure:
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2011 - 15:05

Also für mich ist
www.BLABLA.de/index.php/2003-06-01/index.php?page=home
eine komplett andere Seite als
www.BLABLA.de/index.php?page=home
und das kannst du serverseitig eigentlich auch ohne Probleme herausbekommen.

Hast du allerdings den Fall, dass du sämtliche Requests nach index.php umleiten lässt - für mich sieht das schwer danach aus - kannst du bspw. mittels $_SERVER['REQUEST_URI'] überprüfen welche URL aufgerufen wurde.
0

#5 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 15:14

Ah gute Idee mit dem request_uri. Danke.

Ich machs am besten so:
- am Anfang der index.php Datei $_SERVER['REQUEST_URI'] abfragen
- Dann den String untersuchen, ob sich zwischen dem index.php und dem ? weitere Zeichen befinden

z.B. ist dies ja falsch:
index.php/fpjsdfidsjfiodsj?page=home

und wird dann automatisch geändert in :
index.php?page=home



"dass du sämtliche Requests nach index.php umleiten lässt"
Ich bin mir nicht bewusst, dass ich das gemacht habe. Wüsste auch nicht wie das geht... Wie kann man dies denn direkt verhindern?
0

#6 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 15:39

So funktioniert es nun

// echo $_SERVER['REQUEST_URI'];
		 $urspruenglicheUrl = $_SERVER['REQUEST_URI'];

		 // Prüfen, ob / hinter index.php vorhanden ist, deutet auf Unsinn hin
		 $startposurl = strpos($urspruenglicheUrl,"index.php/");

		 if ($startposurl > 0)

		 {
			// $boeserteil =  substr($urspruenglicheUrl, $startposurl + 9, strpos($urspruenglicheUrl,"?")-10-$startposurl );
			$guterteil = substr($urspruenglicheUrl,strpos($urspruenglicheUrl,"?"), strlen($urspruenglicheUrl));
			Header('Location: http://www.partysaarfari.de' . $guterteil);

		 }

0

#7 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2011 - 15:45

Du kannst z.B. sowas machen:
$request = explode('/', $_SERVER['REQUEST_URI']);

Bei dir müsste also der Querystring wohl immer an 2. Stelle im Array auftauchen. Und wenn er es nicht ist, weißt du automatisch, dass eine falsche URL aufgerufen wurde.

Viel einfacher als deine Lösung. ^_^

Zitat

"dass du sämtliche Requests nach index.php umleiten lässt"
Ich bin mir nicht bewusst, dass ich das gemacht habe. Wüsste auch nicht wie das geht... Wie kann man dies denn direkt verhindern?

Vergiss es, da habe ich mich verguckt. :unsure:
Ich dachte zuerst, dass auch andere Dateien neben index.php betroffen sind.
0

#8 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 15:53

explode würde nicht klappen, glaube ich. Denn es können ja mehrere / zwischen index.php und ? stehen. Das kommt leider oft vor..

www.BLABLA.de/index.php/2003-06-01/bildergal/index.php?page=home

Das fettgedruckte müsste weg.

Dieser Beitrag wurde von andreasm bearbeitet: 08. März 2011 - 15:54

0

#9 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. März 2011 - 16:05

Aber genau deswegen explode. Du weißt, dass in "$request[2]" immer der Querystring stehen muss!

Falls du keinerlei Unterordner in deiner Anwendung haben wirst, kannst du auch PATH_INFO verwenden.

if (isset($_SERVER['PATH_INFO'])) {
	header("HTTP/1.0 404 Not Found");
}

0

#10 Mitglied ist offline   andreasm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 707
  • Beigetreten: 19. Juni 05
  • Reputation: 0
  • Wohnort:Saarland
  • Interessen:Elektrotechnik, Elektronik, Programmierung (PHP, MYSQL, Pascal, C++), Energie allgemein, alternative Energiequellen, sonstige Umweltthemen, Digitale Fotografie, Heimwerken, Partys, Fernsehen, .... also von allem etwas :-)

geschrieben 08. März 2011 - 19:28

Ahso. Sorry. Danke!

Bin heute nicht so ganz bei der Sache :unsure:
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0