BaseHTTPServer reagiert nicht auf get-Anfragen à la http://irgendwas.ch/index.php?cat%20

16/02/2008 - 16:59 von h2obrain | Report spam
Hey leute!
hab hier ein kleines problem bei dem ich nicht ganz durchblick..
ich hab mir aus ein paar scripts einen einigermassen funktionierenden
httpserver geschustert..
funktioniert alles wie es sollte.. hab nur ein problem.. sobald ich
per cgi (?..) irgendwie den string "cat%20" bzw. "cat " durchgeb',
meldet sich de server überhaupt nicht mehr.. es tritt auch kein fehler
oder so auf.. einfach keine antwort auf diese anfrage.. kann es sein,
dass dieser string nicht geschützt ist oder so?

in der klasse RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler)
wird do_Get(self) bei solchen anfragen nicht aufgerufen..

folgende abfrage funktioniert auch nicht..
http://irgendwas.ch/index.php?blablacat%20dasjk

dies funktioniert allerdings..
http://irgendwas.ch/index.php?cat%
http://irgendwas.ch/index.php?cat%%

hat jemand eine ahnung was das soll?

vielen dank für jedwelche hilfe..

euer oli


PS: irgendwas.ch existiert natürlich nicht :)
 

Lesen sie die antworten

#1 Diez B. Roggisch
16/02/2008 - 22:42 | Warnen spam
schrieb:
Hey leute!
hab hier ein kleines problem bei dem ich nicht ganz durchblick..
ich hab mir aus ein paar scripts einen einigermassen funktionierenden
httpserver geschustert..
funktioniert alles wie es sollte.. hab nur ein problem.. sobald ich
per cgi (?..) irgendwie den string "cat%20" bzw. "cat " durchgeb',
meldet sich de server überhaupt nicht mehr.. es tritt auch kein fehler
oder so auf.. einfach keine antwort auf diese anfrage.. kann es sein,
dass dieser string nicht geschützt ist oder so?

in der klasse RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler)
wird do_Get(self) bei solchen anfragen nicht aufgerufen..

folgende abfrage funktioniert auch nicht..
http://irgendwas.ch/index.php?blablacat%20dasjk

dies funktioniert allerdings..
http://irgendwas.ch/index.php?cat%
http://irgendwas.ch/index.php?cat%%

hat jemand eine ahnung was das soll?

vielen dank für jedwelche hilfe..

euer oli


PS: irgendwas.ch existiert natürlich nicht :)



Ohne mehr code schwierig zu beantworten - auch wenn dein code selbst
wohl keine rolle spielt, so ist ein geschlossenes beispiel zum
nachvollziehen nicht zu unterschaetzen.

Wie auch immer - ich kann nur mal raten: das was du da zu uebergeben
versuchst ist denke ich mal kein gueltiges HTTP-GET-Request - wobei auch
ein bisschen RFC-lesen nicht klargemacht hat, was da eigentlich so
_genau_ erlaubt ist. Du versuchts auf jeden Fall einen Key- "blablacat
dasjk" - zu uebergeben, der ein %20-codiertes space enthaelt. Vielleicht
geht das mit + statt %20, oder garnicht.

Am ende hilft einfach nur mal in BaseHTTPServer reindebuggen -
pdb.set_trace() ist dein freund.
Diez

Ähnliche fragen