Principale utente con più risposte
HTTP Upload

Domanda
-
Ciao,
Visto che FTP è troppo insicure, cioè i dati li invia in chiaro, ho deciso di uppare i file in http solo che non ci riesco.
Guardate il codice(opportunamente oscurato):
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://sito.org/Cartella/prova.txt"; request.Method = WebRequestMethods.Http.Post; request.Credentials = new NetworkCredential("username", "password"); byte[] gg = new byte[jj.Length]; char[] hh = new char[jj.Length]; hh = jj.ToCharArray(); for (int i = 0; i < jj.Length; i++) { gg[i] = Convert.ToByte(hh[i]); } Stream reqStream = request.GetRequestStream(); reqStream.Write(gg, 0, gg.Length); reqStream.Close(); request.Abort();
Risposte
-
ciao
devo ovviamente consigliarti di usare WCF visto che http non è comunque molto più sicuro di ftp... mentre con WCF puoi usare un sacco di impostazioni di sicurezza in più, crittografia, compressione, etc...
var request = HttpWebRequest.Create("http://sito.org/Cartella/prova.txt"); request.Method = WebRequestMethods.Http.Post; request.Credentials = new NetworkCredential("username", "password"); var bytes = System.IO.File.ReadAllBytes("c:\file.txt"); var stream = request.GetRequestStream(); stream.Write(bytes, 0, bytes.Length); //devi aspettare ovviamente i tempi della chiamata sincrona var response1 = request.GetResponse(); //leggo la response //oppure chiamata asicrona request.BeginGetResponse(a => { var response2 = request.EndGetResponse(a); //leggo la response }, null);
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:39
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
-
Ciao Orlando,
You wrote on 09/12/2011 :
Se provo ad aggiungere con il Post mi da 404 se provo a modificare un file esistente con Put mi da 405. Il mio dominio è altervista.
non è così facile, http supporta quei verbs ma dall'altra parte (sul server) ci vuole qualcosa (un handler) che sappia cosa fare con quelle chiamate.
Occhio che anche http viaggia in chiaro :-) se vuoi (e puoi nel senso che il provider che usi li supporta) puoi usare sftp e https.
Come dice Antonio molto meglio un semplice servizio e risolvi tutto al volo.
.m
--
blog @ //milestone.topics.it- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:39
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
-
personalmente no
ricapitolando:
vuoi usare http perchè non ti fidi di ftp anche se sono pari a vulnerabilità essendo entrambi in chiaro
vuoi copiare un file su di un hosting su altervista che però non supporta asp.net.......
allora, l'unica soluzione è cercare un hosting free che supporti asp.net così puoi farti la tua paginetta con username+password e pulsantino FileUpload per uppare il file comodamente.... probabilmente è molto più facile che trovare 1 hosting free con ftps o https....
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:38
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
Tutte le risposte
-
ciao
devo ovviamente consigliarti di usare WCF visto che http non è comunque molto più sicuro di ftp... mentre con WCF puoi usare un sacco di impostazioni di sicurezza in più, crittografia, compressione, etc...
var request = HttpWebRequest.Create("http://sito.org/Cartella/prova.txt"); request.Method = WebRequestMethods.Http.Post; request.Credentials = new NetworkCredential("username", "password"); var bytes = System.IO.File.ReadAllBytes("c:\file.txt"); var stream = request.GetRequestStream(); stream.Write(bytes, 0, bytes.Length); //devi aspettare ovviamente i tempi della chiamata sincrona var response1 = request.GetResponse(); //leggo la response //oppure chiamata asicrona request.BeginGetResponse(a => { var response2 = request.EndGetResponse(a); //leggo la response }, null);
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:39
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
-
Se provo ad aggiungere con il Post mi da 404 se provo a modificare un file esistente con Put mi da 405. Il mio dominio è altervista.
- Modificato Orlando Liccardo venerdì 9 dicembre 2011 18:17
-
Ciao Orlando,
You wrote on 09/12/2011 :
Se provo ad aggiungere con il Post mi da 404 se provo a modificare un file esistente con Put mi da 405. Il mio dominio è altervista.
non è così facile, http supporta quei verbs ma dall'altra parte (sul server) ci vuole qualcosa (un handler) che sappia cosa fare con quelle chiamate.
Occhio che anche http viaggia in chiaro :-) se vuoi (e puoi nel senso che il provider che usi li supporta) puoi usare sftp e https.
Come dice Antonio molto meglio un semplice servizio e risolvi tutto al volo.
.m
--
blog @ //milestone.topics.it- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:39
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
-
-
-
Cioè? Poi posso utilizzarlo nel mio programma in modo nascosto?
ciaocosa puoi usare in modo nascosto?!?!
se parli di un servizio WCF, la risposta è si e no.... un servizio risponde sempre... l'unica cosa che puoi fare è impostare un sistema di autenticazione che potrai usare solo tu....
esempio semplice: username+password che saprai solo tu
esempio più avanzato: X509... ma su un hosting non potrai mai installare dei certificati....
ti consiglio comunque di usare WCF con MessageSecurity settata a Username+Password, e scriverti una classettina per gestire l'autenticazione.... ma occhio che WCF non vede automaticamente il contesto di un'applicazione web asp.net, dovrai anche abilitarne la compatibilità....
ma usare skydrive per conservare i files online al sicuro?!?! hai mai provato??!
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
skydrive usa https e sicurezza federata con Live... quindi non ti devi preoccupare di niente, e poi skydrive lo puoi attaccare anche come unità di rete su risorse del computer.... quindi lo puoi usare da windows, o da web, o da API scritte comodamente in .NET, tutto senza preoccuparti di niente con 25 GB di spazio
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
per accedere ed avere un account skydrive:
li puoi creare cartelle, condividerle con il mondo, o solo x te.....
se fai un giro su google trovi varie guide x usare le risorde del computer:
per le API:
ci sn quelle open http://skydriveapiclient.codeplex.com/
e le nuove live sdk: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=28195
a presto
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
-
ciao
x skydrive: non ho ancora avuto il tempo di provarle ma mi sembra strano non esista un modo di fare upload, hai provato a vedere i samples??
https://github.com/liveservices/LiveSDK
x http, essendo in chiaro, l'autenticazione avviene in Basic, quindi con nomeutente e password in chiaro in un header http
per aggiungere 1 header:
var fname = "c:\file.txt"; var b64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(fname)); var request = HttpWebRequest.Create("http://www.google.com"); request.Credentials = new NetworkCredential("username", "password"); request.Headers.Add("myheadername", b64); var response = request.GetResponse();
se hai modo di usare asp.net sul tuo server, perchè non metti una pagina con dentro un FileUpload?? è più semplice
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
mi aspettavo che lo sapessi tu :)
legendo 1 po sul web, sembra di no perchè usano server Linux....
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
ciao
in verità ero certo tu stessi lavorando con asp.net o con qualche linguaggio lato server....
da solo nessun server web ti rende possibile salvare da un header un base64 in un file.... dovresti scrivere del codice, ma con altervista non saprei nemmeno in che linguaggio o per che framework
a questo punto visto che sei completamente in balia di altervista, ma perchè non usare FTP?
tanto in chiaro x in chiaro... almeno è un protocollo fatto già per copiare files??? suppongo che altervista ti dia l'ftp...
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
suppongo che altervista come altro hoster ti dia nomeutente e password per accedere al tuo FTP, quindi non vedo come possa essere meno sicuro di http
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
In giro ci sono tante persone che si credono esperti in informatica ma in realta usano un programma fatto da altri(che ho fatto anche io come sercizio) che ti permette di rilevare i dati del FTP come nome utente e password in forma: nomeutente:password.Quindi come bene capisci poi è semplice entrare in un FTP con quei dati . I dati del http con questi tipi di programmi non si vedono tutti (non si vede ne nome utente ne psw).
-
con qualunque sniffer, fiddler as esempio, è posibile vedere esattamente nomeutente e password essendo in chiaro che vanno al server web ad ogni chiamata....
la sicurezza la hai solo con dei servizi che usano dei protocolli di sicurezza, per il web, hai speranze solo con SSL, ma comunque non è al livello di un servizio
il mio consiglio è: alza il livello di sicurezza usando un servizio WCF da mettere su un server che supporti ASP.NET
alternativamente, se vuoi avere tutto in chiaro e bucabile, usa FTP che è più facile
ultimo consiglio: contorto non vuol dire sicuro, se il tuo sistema è in chiaro, 1 hacker impiega 1 attimo a bucarlo, per quanto tu possa immaginare di mettergli ostacoli.....
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
ma il ftp sp che supporta ssl e anche i certificati x509.
- Modificato Orlando Liccardo domenica 11 dicembre 2011 10:46
-
ftp non so se supporta autenticazione con certificati, ma supporta ssl
se l'ftp di altervista supporta ssl allora hai risolto tutti i tuoi problemi, hai un sistema sicuro, e comodo per copiare files
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
ciao
diciamo pure che errore 500 è un po troppo generico per trovarti una soluzione :)
cosa hai fatto?
come l'hai fatto?
che errore ti da? (oltre 500 dice altro?)
grazie
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org -
-
-
-
personalmente no
ricapitolando:
vuoi usare http perchè non ti fidi di ftp anche se sono pari a vulnerabilità essendo entrambi in chiaro
vuoi copiare un file su di un hosting su altervista che però non supporta asp.net.......
allora, l'unica soluzione è cercare un hosting free che supporti asp.net così puoi farti la tua paginetta con username+password e pulsantino FileUpload per uppare il file comodamente.... probabilmente è molto più facile che trovare 1 hosting free con ftps o https....
Antonio Esposito
MCT, MCPD, MCTS, MCP
http://dotnetlombardia.org- Proposto come risposta Irina Turcu venerdì 16 dicembre 2011 12:38
- Contrassegnato come risposta Irina Turcu martedì 20 dicembre 2011 14:01
-
Ciao Orlando,
Ho segnato come valido anche le risposte che ti sono state suggerite all’inizio (che parlano del WCF), al pensiero che potrebbero essere utili per chi cerca una tale soluzione.
Per ogni altri dubbi sullo sviluppo, sai dove trovarci :)
Saluti,Irina Turcu
Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.