Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

warum kein 404 bei falscher URL ?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 11.03.2008, 21:11

Hab gerade mal meine Logs kontrolliert.

also nennen wir die Unterseite mal test.

Wenn diese so aufgerufen wird

test.php dann geht es
testx.php ergibt einen 404, so wie es soll

Nun hab ich in meinen Logs aber sowas gefunden

test.php//index.php?modulo=https://www. dann hier die Einschleusurl
Das Problem, wieso ergibt das kein 404 Fehler ?
Es wird die seite geladen, aber alle Links drauf stimmen nicht mehr.
Und alle Bilder funktionieren nicht, da diese nicht Absolut verlinkt waren.

Was muss ich einstellen, das hier auch ein 404 kommt, da es ja keine echte URL ist ??

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 11.03.2008, 21:53

In der .htaccess (oder httpd.conf):

Code: Alles auswählen

AcceptPathInfo off

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 11.03.2008, 23:46

Danke für die Antwort.
Hatt das noch irgendwelche Nachteile ?
Also geht dafür was anderes nicht ?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 12.03.2008, 00:50

Öhm, ja, es hätte Nachteile, falls irgendwo auf Deiner Seite Verlinkungen wie
z.B. forum.php/f3/topic333 oder product.php/id5/der-supertolle-fernseher oder ähnliches regulär und gewollt auftaucht.

AcceptPathInfo on erlaubt einem z.B., dass dann die Datei forum.php aufgerufen wird und dieser die nachfolgenden Informationen in $_SERVER["PATH_INFO"]; zur Verfügung stehen, so dass sie ähnlich ausgewertet werden können wie forum.php?forum=3&topic=333.

Diese Technik wird teilweise zur Optimierung verwendet, wenn z.B. mod_rewrite nicht einsetzbar ist.

Falls aber solche Techniken/Dateien bei dir nicht genutzt werden, hat es keine Nachteile.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 12.03.2008, 10:29

Na dann hat sichs erledigt ;)

Ich setze Mod Rewrite ein.
Hab außerdem einen 500er bekommen, also lass ich das lieber ;)

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 12.03.2008, 15:53

Halt :wink:

Ich sprach davon, dass eine solche Technik wie Dateien der Art forum.php/f3/topic33 dann eingesetzt wird, wenn mod_rewrite nicht eingesetzt werden kann.

Da Du aber mod_rewrite einsetzt, wirst Du diese Optimierungstechnik vermutlich nicht verwenden und kannst AcceptPathInfo auf Off setzen.

Der 500er kam vermutlich dadurch zustande, dass ich dummerweise oben das "off" klein geschrieben habe und Apache damit nicht zurecht kommt. :roll:

Also versuch nochmal:

Code:

AcceptPathInfo Off


am Anfang Deiner .htacess.

Siehe auch https://httpsd.apache.org/docs/2.2/de/m ... ptpathinfo

[ot]
Das forum hängt heute aber wieder gewaltig...
[/ot]
Zuletzt geändert von chris21 am 12.03.2008, 15:59, insgesamt 1-mal geändert.

HPB
PostRank 2
PostRank 2
Beiträge: 36
Registriert: 04.03.2008, 18:04

Beitrag von HPB » 12.03.2008, 17:30

Hallo Iceman,

generell ist das ja erstmal nicht schlimm. Akzeptiert deine index.php respektive die hier genannte "test.php" verschiedene Variablen in Form von "index.php?var1=foo&var2=bar"?

Falls das nicht der Fall ist, kannst du ja generelle Varieblenanhänge auf 404 oder andere Status-Codes umleiten.

Andernfalls wäre es interessant, was für Variablen die Datei akzeptiert und welche Ausschlusslogik du für "nicht gefundene Variablen" eingebettet hast. Falls die Ausschlusslogik schwierig ist, hilft wahrscheinlich nur noch eine Blacklist a là "Wenn (z.B.) 'http' in Variable, dann 404 Umleitung".

Grüße

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 12.03.2008, 19:07

Das problem, das wurde von dem Bot oder was das auch immer war, an alle möglichen URLs angehangen.

Und das wollte ich verhindern, das diese so überhaupt aufgerufen werden können.
Es betrifft seiten mit und ohne Variablen.

Werds nochmal mit großem Off probieren, und dann berichten.

HPB
PostRank 2
PostRank 2
Beiträge: 36
Registriert: 04.03.2008, 18:04

Beitrag von HPB » 13.03.2008, 12:04

Naja, aber du wirst doch wohl deine Eingangsvariablen ($_GET und $_POST) an zentraler Stelle prüfen und sichern, oder?
Falls nicht, würde ich das schnellstens nachholen.

Bootstrap-Datei: array_map(array('DB_Abstract_Wrap','sanitizeInput_Multilevel'),$this->aGet);

Funktion dazu (ungefähr & ungetestet):
public function sanitizeInput_Multilevel($sString) {
$sString = (get_magic_quotes_gpc())?stripslashes($sString):$sString;
$sString = strip_tags($sString);
//Blacklist abgleich
if(strpos($sString, "http")!==false||......) {
$oHelperHttp = new Http_Status_Redirect404();
}
}


Nur als Anregung für den Gedankengang (so runtergeschrieben, also ungetestet!);

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 17.03.2008, 13:54

Hi Ice Man,

da vermutlich Dein Problem auf einem Apache 1.3 auftaucht und dort AcceptPathInfo als Direktive nicht zur Verfügung steht, bietet sich folgende Lösung über mod_rewrite an:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} /(.*)(\.php|\.html|\.cgi)/(.*)
RewriteRule (.*) http://www.example.com/%1%2 [R=301,L]

Damit werden solche Abfragen nun abgefangen und auf Deine eigentliche URL umgeleitet.

D.H-> test.php/hallo/welt -> test.php

Ebenso kannst Du weitere Dateiendungen hinzufügen, z.B. statt (\.php|\.html|\.cgi) (\.php|\.html|\.cgi|\.xhtml), um diese Regel auch bei xhtml Dateien anzuwenden, etc.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag