HTTP Anfrage abfangen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Seikilos
User
Beiträge: 11
Registriert: Sonntag 19. April 2009, 12:16

Hallo,

die Frage klingt wohl nach nem Script Kiddy :) Hat aber einen ernsten Hintergrund (Motivation weiter unten).
Ich suche einen Weg, wie ich lokal auf einem Rechner HTTP Anfragen zu bestimmten Domains abfangen kann.
Läuft es darauf hinaus, einen HTTP Tunnel zu schreiben? Ich möchte eine Anfrage zur Domain xy mit meinem eigenen Response versehen, aber alle anderen Anfragen an alle anderen Domains und normale HTTP Kommunikation soll nicht davon betroffen werden.
Ich denke nicht, dass ich einen HTTP Listener auf eine einzige Adresse legen kann, oder?

Benötige ich des weiteren zusätzliche Pakete?


Legitime Motivation:
Ich bin Softwareentwickler und habe für ein Webprojekt ein Formular mit Eingabefeldern, welches ich im TDD exzesiv mit functional tests auf injections usw. durchprüfe. Bei der Prüfung ist aber auch das korrekte Absenden des Formulars ein Test, welches bis dato gut funktioniert hat.
Nun habe ich aber reCaptcha als captcha system bei mir hinzugefügt und dadurch wird nun natürlich jeder test verhindert. Ich kann kein Formular mehr automatisiert abschicken, da das reCaptcha nicht funktioniert. Das reCaptcha validiert die eingegebene Antwort über den reCaptcha Server und dafür brauch ich das Tool. Ich muss, wenn es läuft, die Anfrage immer dann positiv zurücksenden, wenn ein dummy captcha code eingegeben wurde.

Ich will keine hacks in meinem Code, dass das captcha nicht benutzt wird, wenn tests gefahren werden usw, weil das integrierte System getestet wird und das soll nicht mit selbstgebauten Hintertüren potentiell für den Produktiveinsatz verkrüppelt werden.
Ich hab bei reCaptcha bereits angefragt, von deren Seite gibt es keinen Weg, dummy codes generieren zu lassen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich denke ein DEBUG Modus, der nur bei deiner IP Adresse funktioniert wäre sinnvoller als den HTTP Verkehr zu manipulieren. Schließlich muß ja nur die Captcha Überprüfung deaktiviert werden.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Trage in einer /etc/hosts-Datei (oder wie das unter Windows heißen mag), den Namen von reCaptcha als Alias für einen lokalen Rechner ein und lasse dort dann einen Server laufen, der sich protokollkompatibel verhält.

Allerdings erscheint es mir wirklich einfacher, für die Tests Seiten zu benutzen, wo das Captcha nicht enthalten ist. Ein einfaches "if", das die Dinger generiert oder nicht sollte nicht die Korrektheit der restlichen Tests gefährden.

Stefan
Seikilos
User
Beiträge: 11
Registriert: Sonntag 19. April 2009, 12:16

Den zu prüfenden Code generiert ja nicht der Test. Der Test nutzt die Form Klasse, die auch genauso im Produktivbetrieb verwendet wird.
Ich kann im Code unterscheiden, ob ich mich im prod, test oder dev Environment befindet, aber das würde bedeuten, dass ich if Bedingungen in den eigentlich Code packe, nur damit ich testen kann.
Das sieht weder gut aus, noch ist es gutes Design fürs Testen Hintertüren zu öffnen
Antworten