# 🌐 Advanced Web Proxy - Improved Version 2.0
## 🎯 Was wurde verbessert?
### 1. **CSS Handling komplett überarbeitet** ✅
**Problem:** CSS wurde nicht korrekt geladen, Inline-Styles nicht umgeschrieben
**Lösung:**
- ✅ Externe CSS-Dateien werden über resource.php geladen
- ✅ Inline `<style>` Tags werden durchsucht und URLs umgeschrieben
- ✅ Inline `style=""` Attribute werden durchsucht
- ✅ `url()` in CSS wird korrekt umgeschrieben
- ✅ `@import` wird korrekt umgeschrieben (mit und ohne url())
- ✅ Base-URL wird an resource.php übergeben für relative URLs in CSS
### 2. **Google Suche funktioniert besser** ✅
**Problem:** Google hat Probleme mit Proxies
**Lösung:**
- ✅ Bessere User-Agents (aktualisiert auf Chrome 131, Firefox 133)
- ✅ Google-Suche mit `&hl=de` Parameter
- ✅ Cookies werden gespeichert und wiederverwendet
- ✅ Redirects werden korrekt gefolgt
- ✅ DNT Header wird gesendet
### 3. **Cookie-Handling** ✅
**Neu:** Cookies werden jetzt gespeichert!
- Session speichert Cookies zwischen Requests
- Set-Cookie Headers werden ausgelesen
- Cookies werden bei folgenden Requests mitgesendet
- Wichtig für Login-Seiten und personalisierte Inhalte
### 4. **Besseres URL Rewriting** ✅
**Verbessert:**
- ✅ `..` und `.` in URLs werden korrekt aufgelöst
- ✅ Query-Parameter (`?`) und Anchors (`#`) funktionieren
- ✅ HTML entities werden dekodiert (`&` → `&`)
- ✅ srcset Attribute werden umgeschrieben (responsive images)
- ✅ Alle Attribute-Varianten werden erkannt (mit/ohne Quotes)
### 5. **Resource-Proxy verbessert** ✅
**Neu in resource.php:**
- ✅ Base-URL Parameter für CSS (`&base=...`)
- ✅ Cache-Headers für bessere Performance
- ✅ CORS-Headers (`Access-Control-Allow-Origin: *`)
- ✅ Bessere Content-Type Detection
- ✅ Font-Support (woff, woff2, ttf, otf, eot)
- ✅ SVG-Support
- ✅ JSON-Support
- ✅ Längere Cache-Zeiten (Fonts 30 Tage, Bilder 7 Tage)
### 6. **Inline-Style Rewriting** 🆕
**Komplett neu:**
```html
<!-- Vorher: Nicht umgeschrieben -->
<div style="background: url('image.jpg')">
<!-- Nachher: Korrekt umgeschrieben -->
<div style="background: url('resource.php?url=...')">
```
### 7. **Redirect-Support** ✅
**Neu:**
- Folgt automatisch Redirects (max 5)
- Nutzt finale URL für Rewriting
- Wichtig für Kurz-URLs und Weiterleitungen
### 8. **Bessere Quick Links** ✅
**Geändert:**
- Wikipedia (funktioniert perfekt)
- DuckDuckGo Lite (schnell, proxy-freundlich)
- NPR Text (text-only, funktioniert immer)
- Entfernt: Reddit (zu JavaScript-heavy)
---
## 🚀 Neue Features
### CSS mit Base-URL
```php
// resource.php wird mit base-URL aufgerufen
resource.php?url=https://example.com/style.css&type=css&base=https://example.com/page.html
// CSS darin:
background: url('../images/bg.jpg')
// Wird korrekt zu:
background: url('resource.php?url=https://example.com/images/bg.jpg')
```
### Inline-Style Handling
```php
// Alle Style-Varianten werden verarbeitet:
<div style="background: url(bg.jpg)"> ✅
<div style='background: url("bg.jpg")'> ✅
<style>body { background: url(bg.jpg) }</style> ✅
```
### Cookie-Sessions
```php
// Cookies werden automatisch gespeichert
$_SESSION['cookies'] = [
'session_id' => 'abc123',
'preferences' => 'theme=dark'
];
// Und bei nächstem Request mitgesendet
```
---
## 📋 Technische Details
### HTML Rewriting
- ✅ `<a href>` - Links über Proxy
- ✅ `<img src>` + `srcset` - Bilder über resource.php
- ✅ `<link href>` - CSS über resource.php mit base-URL
- ✅ `<script src>` - NICHT proxied (macht Probleme)
- ✅ `<form action>` - Forms über Proxy
- ✅ `<iframe src>` - iframes über Proxy mit sandbox
- ✅ `<meta http-equiv="refresh">` - Redirects über Proxy
- ✅ `<base>` - wird entfernt (macht nur Probleme)
- ✅ `style=""` - Inline-styles durchsuchen
- ✅ `<style>` - Inline CSS-Blocks durchsuchen
### CSS Rewriting
- ✅ `url(...)` - alle Varianten
- ✅ `url("...")` - mit Quotes
- ✅ `url('...')` - mit Single-Quotes
- ✅ `@import "..."` - externe Stylesheets
- ✅ `@import url(...)` - alternative Syntax
### Bessere Regex
- Attribute mit und ohne Quotes
- HTML entities werden dekodiert
- Whitespace-tolerant
- Case-insensitive
---
## ⚠️ Bekannte Einschränkungen
### Was funktioniert NICHT gut:
1. **JavaScript-heavy Seiten**
- SPAs (Single Page Apps)
- React/Vue/Angular Sites
- AJAX-heavy Seiten
- Grund: JavaScript wird nicht umgeschrieben
2. **Login-Seiten**
- Manche funktionieren (mit Cookies)
- Viele haben CSRF-Protection
- OAuth funktioniert nicht
3. **Cloudflare-geschützte Seiten**
- Bot-Detection erkennt Proxies
- JavaScript-Challenges funktionieren nicht
4. **WebSockets**
- Echtzeit-Features funktionieren nicht
- Chat-Apps, Live-Updates etc.
5. **Google**
- Funktioniert eingeschränkt
- reCAPTCHA kann erscheinen
- Besser: DuckDuckGo verwenden
### Was funktioniert GUT:
✅ Wikipedia (perfekt!)
✅ News-Seiten (meist gut)
✅ Blogs und Text-Seiten
✅ Einfache Such-Engines
✅ DuckDuckGo Lite
✅ Text-only Seiten
---
## 🔧 Installation
1. Dateien hochladen:
- `index.php`
- `resource.php`
2. PHP Voraussetzungen:
- PHP 7.4+
- cURL Extension
- Session Support
3. Server-Konfiguration:
- `allow_url_fopen = On`
- `session.auto_start = Off`
4. Aufrufen:
```
https://deine-domain.de/proxy/
```
---
## 💡 Performance-Tipps
### Cache nutzen
resource.php sendet Cache-Headers:
- CSS/JS: 24 Stunden
- Bilder: 7 Tage
- Fonts: 30 Tage
Browser-Cache reduziert Server-Last erheblich!
### Timeout anpassen
In index.php:
```php
curl_setopt($ch, CURLOPT_TIMEOUT, 25); // Bei langsamen Seiten erhöhen
```
### Session-Cleanup
Alte Sessions regelmäßig löschen:
```php
// In index.php am Anfang
if(rand(1, 100) == 1) {
session_gc();
}
```
---
## 🐛 Debugging
### CSS lädt nicht?
1. Browser DevTools → Network Tab öffnen
2. Nach `resource.php` suchen
3. HTTP Status prüfen (sollte 200 sein)
4. Response prüfen (sollte CSS sein)
### Bilder fehlen?
1. Rechtsklick auf Bild → "Grafik-Adresse kopieren"
2. Im Browser öffnen
3. Fehler lesen
### Seite sieht falsch aus?
1. Rechtsklick → "Seitenquelltext anzeigen"
2. Nach `resource.php` suchen
3. Prüfen ob URLs umgeschrieben wurden
### Google funktioniert nicht?
→ Nutze DuckDuckGo! Google ist sehr Proxy-feindlich.
---
## 🎨 Anpassungen
### Design ändern
In index.php im `<style>` Block:
```css
.toolbar{background:linear-gradient(135deg,#1e293b,#334155)}
/* Ändere Farben nach Wunsch */
```
### Mehr Quick-Links
```php
<a href="?url=https://example.com" class="quick-link">📌 Example</a>
```
### Timeout erhöhen
```php
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 60 Sekunden
```
---
## 📊 Vergleich Alt vs Neu
| Feature | v1.0 | v2.0 |
|---------|------|------|
| Externe CSS | ❌ | ✅ |
| Inline CSS | ❌ | ✅ |
| Style-Attribute | ❌ | ✅ |
| @import | ⚠️ | ✅ |
| Cookies | ❌ | ✅ |
| Redirects | ⚠️ | ✅ |
| srcset | ❌ | ✅ |
| Base-URL in CSS | ❌ | ✅ |
| Cache-Headers | ❌ | ✅ |
| CORS-Headers | ❌ | ✅ |
| HTML entities | ❌ | ✅ |
| Google-Support | ❌ | ⚠️ |
---
## 🔒 Sicherheit
### Was der Proxy macht:
- ✅ Verschleiert deine IP
- ✅ Rotiert User-Agent
- ✅ Sendet DNT Header
- ✅ Keine Logs (bei dir)
### Was der Proxy NICHT macht:
- ❌ Kein HTTPS zwischen dir und Proxy (nutze HTTPS!)
- ❌ Keine Anonymisierung gegenüber Server-Admin
- ❌ Kein Schutz vor JavaScript-Tracking
- ❌ Kein VPN-Ersatz
---
**Version:** 2.0 Improved
**Datum:** Januar 2026
**Status:** Production Ready ✅