[ruby-it] Mi annoio: anonymizer in rails (anonyrails)
Tucano
tucano a recipient.cc
Mer 10 Dic 2008 17:32:53 CET
Il giorno 10/dic/08, alle ore 15:14, Paolo Montrasio ha scritto:
> Se ho ben capito quel che vuoi fare (una catena di proxy http?) [..]
Ti faccio un esempio con del software disponibile:
Prendi http://anonymouse.org, e nel'input text della pagina inserisci
l'indirizzo di un'altro anonymizer ... :)
tipo http://www.shadowsurf.com/ e ti ritrovi con un URL come questo:
http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.shadowsurf.com/
Ora proviamo a fare chaining ed andare su google.... l'URL diventa cosi:
http://anonymouse.org/cgi-bin/anon-www.cgi/http://www2.shadowsurf.com/cgi-bin/nph-shadowsurf.cgi/010110A/x-proxy/start
... un URL orribile no?
A me invece piacerebbe poter fare un proxy chaining "REST" (mi scuso
se sto usando questa definizione in modo errato), tipo:
http://anoynimizer1/http://anonymizer2/http://anonymizer3/http://www.google.it/
sarebbe fighissimo! (ditemi se esiste gia' qualcosa di simile!)
> Per la tua domanda numero 3: se il browser fa una richiesta al tuo
> server Rails per l'HTML, farà a lui anche tutte quelle per js,
> immagini,
> css ed altro che sono riferiti dall'HTML; e questo mi pare che lo
> sai e
> così vorresti riscrivere tutte le url di quei contenuti per bypassare
> Rails. Temo però che sia un compito improbo e probabilmente
> impossibile
> da portare a termine con successo (pensa alle url generate da
> javascript). Dovresti mettere davanti a Rails un altro server
> (Apache?)
> a cui far gestire come proxy tutti i mime-type diversi dall'html, ma
> questo non renderebbe inutile il proxy Rails?
>
Sigh sono d'accordo: il compito e' arduo
Mi son messo a spiare quello che (credo) fanno i CGI-proxy disponibili
in rete
(a parte scavallare le passsword... che lo fanno di sicuro ...)
Anonymouse per esempio innietta nella pagina un tag "base": esempio
\<base href="http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.yahoo.com/_ylh=X3oDMTFnaGtyajVzBF9TAzI3MTYxNDkEcGlkAzEyMjg5MTg5NTkEdGVzdAMwBHRtcGwDdGFibGUuaHRtbA--/
" target="_top"\>
Poi modifica i tag di tutte le immagini, action dei forms, etc...
\<img src="http://anonymouse.org/cgi-bin/anon-www.cgi/http://l.yimg.com/a/i/ww/beta/y3.gif
" width="232" height="44" alt="Yahoo!" title="Yahoo">
a anche nel codice javascript.... !
Esempio (da google: http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.google.it/)
f.src="http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.google.it/
#"
Insomma un lavoraccio, dovrei fare la stessa cosa, aggiungendo a tutti
i path che trovo la mia "catena di proxy rails" come prefisso...
Ora passiamo al mio tentativo di smanettone... :)
Questo e' il mio controller: http://pastie.org/335826
per farlo girare, basta aggiungere a config/route.rb:
map.connect ':myurl', :controller => 'hide', :action =>
'index', :requirements => { :myurl => /.*/ }
In pratica ho aggiunto qualcosa di veramente grezzo che sostituisce
tutti i pattern
/src="(.*?)"/
aggiungendo "http://0.0.0.0:3000/nomehost".
con questa schifezza (e' una prova, siate buoni) sono riuscito a
visualizzare il logo di google (chiamando l'url http://0.0.0.0:3000/http://www.google.it/index.html)
Domande per i volenterosi che mi vogliono rispondere (vedi codice at http://pastie.org/335826)
1. ho inserito il codice che modifica gli url in un metodo private del
controller, corretto?
2. il metodo viene chiamato da un "after_filter", e' un corretto uso
dei filtri?
3. Se usate il controller puntando ad un'immagine, l'immagine viene
renderizzata come testo! praticamente un more su un file binario via
web ... (esempio: http://0.0.0.0:3000/http://www.google.it/intl/it_it/images/logo.gif)
; eppure quando rails fa la richiesta riferita alla pagina index.html
il logo e' visualizzato correttamente. Non e' strano?
Qui il log di mongrel:
Processing HideController#index (for 127.0.0.1 at 2008-12-10 17:15:22)
[GET] Parameters: {"myurl"=>"http://www.google.it/index.html"}
Completed in 63ms (View: 0, DB: 0) | 200 OK [http://0.0.0.0/http://www.google.it/index.html
]
Processing HideController#index (for 127.0.0.1 at 2008-12-10 17:15:22)
[GET] Parameters: {"myurl"=>"http://www.google.it/intl/it_it/images/logo.gif
"}
Completed in 80ms (View: 0, DB: 0) | 200 OK [http://0.0.0.0/http://www.google.it/intl/it_it/images/logo.gif
]
Processing HideController#index (for 127.0.0.1 at 2008-12-10 17:15:22)
[GET] Parameters: {"myurl"=>"images/nav_logo3.png"}
Errno::ECONNREFUSED (Connection refused - connect(2)): <-- QUESTA IL
MIO super oneline parser non lo becca ;-)
>
> Paolo
>
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>
More information about the Ml
mailing list