Nasıl basit bir PHP saydam proxy yazıyorsunuz?

3 Cevap php

Bir giriş ekran arkasında gizli bir sayfasına erişebilirsiniz bir proxy komut dosyası yapmak gerekir. Ben giriş yerine giriş sayfası HTML normalde kullanıcıya gösterilmesi gereken "taklit" için vekil gerekmez, ve tüm çerezleri ve HTTP GET / POST sunucu proxy üzerinden akış veri, bu nedenle giriş olmalıdır otantik.

Ben giriş / parola istemiyorum, ben sadece after günlüğü içeri oluşturulan sayfaların HTML kaynak koduna erişim ihtiyacı

Burada herkes bu yapılabilir biliyor mu? Kolay mı?

Eğer değilse, nereden başlamalıyım? * (Ben şu anda PHP kullanıyorum) *

3 Cevap

Kendinizi kimlik doğrulaması gerekir hangi sayfalara erişen hakkında neler konuştuğunu.

İşte yatırdı gereken bir kaç şey vardır:

  • Kendinizi kimlik doğrulaması olmadan bu sayfaları görüntüleyemezsiniz.
  • (kimin HTML kodu görmek istiyorum) web sitesi sadece bir kimlik doğrulama yöntemi olarak web giriş destekliyorsa durum olabileceği gibi, sen, POST / GET yoluyla (kullanıcı adı, şifre) göndererek giriş simüle etmek gerekir
  • web sitesi (LDAP, Kerberos vb gibi) diğer yollarla kendinizi kimlik doğrulaması izin verirse, o zaman yapmanız gerektiğini

Önemli nokta öncelikle kendinizi kimlik doğrulaması olmadan erişemezsiniz olmasıdır.

Dil gelince, PHP oldukça yapılabilir. Sorusu üzerine etiketleri önermek gibi ve zaten bu işi yapmak için doğru araçları kullanıyor.

Ben bilmek istiyorum bir şey, neden bunu bir "vekil" diyorsun nedir? Eğer diğer kullanıcılara içerik sunmak istiyorsun?

EDIT: [Yorumlarınız sonra update]

Bu durumda, PHProxy kullanın. Diğer özellikleri bir ev sahibi ile birlikte, ne isterseniz onu yapar.

PHP komut isteği istediğiniz URL var, ve tüm bağlantılar yeniden ve geri php komut işaret eylemler oluşturur. Bir URL parametresi var script istekleri alırken, uzak sunucuya ve tekrar o iletmek.

(Eğer "vekil" bir JavaScript kısmını uygulamaya sürece), tüm JavaScript isteklerini yakalamak mümkün olmayacaktır

Örn: Kullanıcı tipleri http://example.com/login.php proxy forma.

http://yoursite.com/proxy.php?url=http://example.com/login.php için kullanıcı göndermek

parametresini UrlEncode emin olun "http://example.com/login.php"

http://yoursite.com/proxy.php, sen http://example.com/login.php bir HTTP isteği yapmak içinde

// make the HTTP request to the requested URL
$url = $_REQUEST['url'];
$content = file_get_contents($url);

// parse all links and forms actions and redirect back to this script
$content = preg_replace("/some-smart-regex-here/i", "$1 or $2 smart replaces", $content);

echo $content;

O /some-smart-regex-here/i aslında bir regex bağlantıları ayrıştırmak için yazmak gerekir ifadesi, ve böyle Not.

Örnek sadece proxy HTTP üstbilgileri isteyebilirsiniz HTTP Body ve proxy. Sen fsockopen () veya PHP5 + PHP akım işlevleri (stream_socket_client (), vb) olabilir

Ben tam aynı soru ve bir tane yapmaya karar kendime soruyorum çünkü http://code.google.com/p/php-transparent-proxy/, ben yaptım kontrol edebilir. BSD lisansı altında, yani eğlenmek :)

Evet, 2 yıl sonra, biliyorum, ama php şeffaf vekil ararken bu ilk sonuç, bu nedenle gelecekte diğer insanlara yardımcı olabilir.