Go Down

Topic: Domande da principiante per iniziare ad usare WiFi/Ethernet shield (Read 12647 times) previous topic - next topic

er_like_no_other

facendo delle prove ho scoperto che risponde mettendo solo una opzione nella stringa degli User-Agent
la risposta che ottengo è quella che ottieni anche te, ma se scrivo HTTPS mi da l'errore 400 bad request

al momento il mio codice è così:
Quote

    client.println("GET /vicenza.thunders HTTPS/1.0");
    client.println("Host: www.facebook.com");
    client.println("User-Agent: Mozilla/5.0");
    client.print("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/");client.println("*;q=0.8");
    client.println("Accept-Language: en-US,en;q=0.8");
    client.println("Accept-Encoding: gzip,deflate,sdch");
    client.println("Connection: keep-alive");
    client.println();

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

testato

Mi dispiace non essere a casa per fare delle prove.
Leo non ho capito una cosa, ma i siti HTTPS quindi secondo te possono essere almeno letti ma non interrogati ?
Consiglio gare prove con google.com che risponde sia a http che ad HTTPS. Nel primo caso via Arduino si può sia leggere la pagina sia fare una query e ricevere risposta, mentre usando HTTPS si potrà solo leggere la pagina ? Per capirci potrò su HTTPS capite che doodle sta usando perché il nome del doodle è in chiaro ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lestofante

Quote
ma se scrivo HTTPS mi da l'errore 400 bad request


eccerto! il protocollo di comunicazione è sempre in HTTP, solo che il layer sottostante anzichè essere direttamente in TCP, è su un layer SSL che fornisce la critazione.
Quindi i comandi NON cambiano, solo sono criptati prima di essere inviati.

Quote
Leo non ho capito una cosa, ma i siti HTTPS quindi secondo te possono essere almeno letti ma non interrogati ?

no, sia richiesta che risposta sono via HTTPS, poi alcuni siti fanno il login in HTTPS e poi rispediscono su HTTP, ma stanno scomparendo.

il problema è con l'HTTP per un eventuiale Man-In-The-Middle, lo spoof della sessione è una baggianata. Mi direte che è quasi impossibile beccare una persona, ma se stai spoofando in modo automatico le utenze a siti molto usati come twitter e simila, magari attraverso un router wifi senza password strategicamente piazzato vicino alla finestra che da sulla piazza...
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

er_like_no_other

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

lestofante

non con arduino, almeno fuichè primanon troviun modo per fargli criptare tutto in SSL, e ionon ho mai rtovato nulla (è molto pesante come algoritmo..)
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

er_like_no_other

Ahn ok quindi è lo stesso problema delle API.. Bisognerebbe usare un supporto esterno, come per esempio viene fatto nella libreria Twitter che si appoggia su un altro server.. No? Altre soluzioni possibili?
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

er_like_no_other

ok provando un poì più o meno ho capito come funzionano le chiamate http, anche se resta questo grande problema legato alla criptazione SSL..
Ora vorrei capire come funziona la creazione di una pagina web, ho visto l'esempio WebServer dove viene caricata una pagina html che è accessibile attraverso l'indirizzo ip.. Penso però che questo non sia accessibile al di fuori della LAN, sbaglio? Ho letto in altre discussioni approposito dell'ip pubblico, potrei usare quello, no? non ho idea di come funzioni quindi probabilmente mi sto sbagliando... Cos'altro potrei fare in questo senso? se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?
grazie
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

lestofante

il tuo server risponde a qualsiasi chiamante. Il problema è accettarechiamate dall'esterno.

Se vai su www.mioip.it (e non hai fastweb / internet key) vedrai il tuo ip pubblico. Però è uno, e i tuoi pc sono tanti. E quindi? e quindi quello è l'ip del router.
Il tuo router fa da NAT (e quindi indirettamente da firewall per il traffico in entrata), tu DEVI dire al tuo router che tutto il traffico in arrivo sulla porta X (80 TCP nel tuo coso) va rediretto sulla porta Y (sempre 80 TCP nel tuo caso) del computer locale Z (ip locale dell'arduino)

è la stessa identica cosa che fai con emule/torrent o i server dei giochi o qualsiasi altro server che vuoi rendere accessibile dall'esterno.

Quote
se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?

sì, se è un sito, se invece è un server di altro tipo parlerà con il protocollo più adatto. FTP (scambio file), SNMP(invio mail), POP3(ricezione mail), IMAP(invio e ricezione mail), SSH(bhe, no per lo stesso motivo dell'SSL, controllo remoto dei PC btw), etc...
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

er_like_no_other


il tuo server risponde a qualsiasi chiamante. Il problema è accettarechiamate dall'esterno.

Se vai su www.mioip.it (e non hai fastweb / internet key) vedrai il tuo ip pubblico. Però è uno, e i tuoi pc sono tanti. E quindi? e quindi quello è l'ip del router.
Il tuo router fa da NAT (e quindi indirettamente da firewall per il traffico in entrata), tu DEVI dire al tuo router che tutto il traffico in arrivo sulla porta X (80 TCP nel tuo coso) va rediretto sulla porta Y (sempre 80 TCP nel tuo caso) del computer locale Z (ip locale dell'arduino)
è la stessa identica cosa che fai con emule/torrent o i server dei giochi o qualsiasi altro server che vuoi rendere accessibile dall'esterno.

su questo devo documentarmi meglio perchè il funzionamento di emule e dei torrent non lo mai capito bene :smiley-roll-sweat: ... comunque da come lo dici tu non sembra neanche così impossibile :)


Quote
se volessi farlo comunicare con un mio sito devo comunque usare le chiamate http, no?

sì, se è un sito, se invece è un server di altro tipo parlerà con il protocollo più adatto. FTP (scambio file), SNMP(invio mail), POP3(ricezione mail), IMAP(invio e ricezione mail), SSH(bhe, no per lo stesso motivo dell'SSL, controllo remoto dei PC btw), etc...

non ho capito, ma per le email non c'entra niente se il sito è criptato in SSL? è completamente diverso?
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

lestofante

no, attento, i siti propongono un'interfaccia grafica al servizi email. Il vero protocollo sottostante funziona a colpi di ascii :)
Ricordati sempre che l'HTTP è l'ultimo arrivato, mail e similia esistevano quando le pagine erano HTML PURO e scaricare un'immagine come il logo in alto di arduino impiegava parecchi secondi.

in generale, visto che una comunicazione TCP ascii si può instaurare con il programma TELNET, presente su windows, linux e mac e funziona allo stesso modo, se scrivi "telnet quello che vuoi fare" otterrai millemila risultati
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

er_like_no_other

mi piace sta cosa, appena posso provo :)
una domanda, probabilmente sto confondendo alcune cose, ciò significa che sono "meno criptati" e quindi meno sicuri delle pagine criptate in SSL?
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

lestofante

sono NON criptati (plain text), come l'http, quindi altamente insicuri... ma comunque non è così facile
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

er_like_no_other

non sono ancora riuscito a provare le e-mail :smiley-sweat:
però questo weekend sono stato all'HackItaly ad H-Farm e nel mio team abbiamo fatto questo: https://www.hackerleague.org/hackathons/hackitaly/hacks/bob
siccome lavoravamo con iPhone e il bluetooth non si può usare abbiamo usato una comunicazione WiFi tramite pacchetti UDP che da quel che ho capito funzionano solo sulla LAN (almeno che non si faccia quello che si diceva in precedenza con l'IP pubblico?)

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

testato

Scusa non ho capito, su questo BOB siete riusciti ad usare https ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

er_like_no_other


Scusa non ho capito, su questo BOB siete riusciti ad usare https ?

dal punto di vista di arduino no, l'arduino comunica con iPhone tramite pacchetti UDP, poi con l'iPhone hai più liberà nel navigare e usare API varie
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Go Up