yurij
Lt. Commander
- Registriert
- Jan. 2008
- Beiträge
- 1.064
Heute morgen einen HTTP 1.0 Proxy Server in PHP geschrieben.
Der 5te. Die anderen 4 waren in C# geschrieben und viel komplexer.
Dieser Beitrag wird übrigens durch dieses Proxy geschrieben.
Damit lässt sich ein Apache/PHP Server als HTTP Proxy missbrauchen.
Wozu das gut ist: nun man ist damit Man-in-the-Middle bei jeder Kommunikation zwischen Browser und Webserver und kann diese kontrollieren. Werbebanner filtern, böse scripts blocken, hacken, was auch immer...
Lässt sich lokal oder auf einem Webhost betreiben.
Im Browser einfach die IP und Port als HTTP Proxy Server eintragen.
Voraussetzung: Apache, PHP, mod_rewrite.
unterstützt wird HTTP 1.0
GET-/POST-Requests, Headers, Cookies etc. werden weitergeleitet.
nicht unterstützt wird HTTP 1.1 und HTTPS/SSL
Mit gerade 9 Zeilen Quellcode wahrscheinlich der kleinste funktionierende HTTP Proxy server der Welt
index.php
.htaccess für mod_rewrite
Stellt sicher, dass alle Anfragen an unseren Webserver vom Proxy (index.php) abgefangen werden.
Der 5te. Die anderen 4 waren in C# geschrieben und viel komplexer.
Dieser Beitrag wird übrigens durch dieses Proxy geschrieben.
Damit lässt sich ein Apache/PHP Server als HTTP Proxy missbrauchen.
Wozu das gut ist: nun man ist damit Man-in-the-Middle bei jeder Kommunikation zwischen Browser und Webserver und kann diese kontrollieren. Werbebanner filtern, böse scripts blocken, hacken, was auch immer...
Lässt sich lokal oder auf einem Webhost betreiben.
Im Browser einfach die IP und Port als HTTP Proxy Server eintragen.
Voraussetzung: Apache, PHP, mod_rewrite.
unterstützt wird HTTP 1.0
GET-/POST-Requests, Headers, Cookies etc. werden weitergeleitet.
nicht unterstützt wird HTTP 1.1 und HTTPS/SSL
Mit gerade 9 Zeilen Quellcode wahrscheinlich der kleinste funktionierende HTTP Proxy server der Welt
index.php
Code:
<?php
$Options = array('http' => array('method' => $_SERVER["REQUEST_METHOD"], 'header' => NULL));
foreach (getallheaders() as $Key => $Value)
$Options['http']['header'] .= !in_array($Key, array("Proxy-Connection", "Keep-Alive")) ? $Key . ": " . $Value . "\r\n" : NULL;
if ($_SERVER["REQUEST_METHOD"] == "POST")
$Options['http']['content'] = $HTTP_RAW_POST_DATA != NULL ? $HTTP_RAW_POST_DATA : http_build_query($_POST);
$RESPONSE = file_get_contents($_SERVER["REQUEST_URI"], false, stream_context_create($Options));
foreach ($http_response_header as $Header) header($Header);
echo $RESPONSE;
.htaccess für mod_rewrite
Stellt sicher, dass alle Anfragen an unseren Webserver vom Proxy (index.php) abgefangen werden.
Code:
RewriteEngine on
RewriteRule .* index.php
Zuletzt bearbeitet: