Autenticação segura do Google
-
25-09-2019 - |
Pergunta
Preciso fazer uma consulta a um dos serviços do Google. Eu li esta resposta: Baixe CSV do Google Insight para pesquisa
O código copiado e colado dessa pergunta é:
using (var client = new WebClient())
{
// TODO: put your real email and password in the request string
var response = client.DownloadString("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email=youraccount@gmail.com&Passwd=secret&service=trendspro&source=test-test-v1");
// The SID is the first line in the response
var sid = response.Split('\n')[0];
client.Headers.Add("Cookie", sid);
byte[] csv = client.DownloadData("http://www.google.com/insights/search/overviewReport?q=test&cmpt=q&content=1&export=2");
// TODO: do something with the downloaded csv file:
Console.WriteLine(Encoding.UTF8.GetString(csv));
File.WriteAllBytes("report.csv", csv);
}
E quero saber se o envio da senha na string é seguro ou pode ser agarrado?
Se isso não estiver protegido, como deve ser feito?
Solução
Já que usa https (não simples HTTP) Deve ser tão seguro quanto qualquer outra coisa pode estar na rede. Todos os dados, incluindo o URL, viajam em um canal criptografado, uma vez que a conexão TLS subjacente estabelecida.
Outras dicas
Esta é uma daquelas situações de "boas notícias, más notícias".
Boas notícias: a senha não pode ser agarrada por um espionagem (porque é enviado sobre HTTPS: criptografado).
Más notícias: o cookie da sessão pode ser agarrado por um bisbilhoteiro (porque é enviado por HTTP: não criptografado). Como o FireSheep demonstrou, permitir que alguém tenha acesso ao seu cookie da sessão do Google é perigoso, pois dá ao invasor acesso ao seu e -mail e outro conteúdo armazenado no Google.
Se você pode mudar o http
Url a um https
URL, isso seria mais seguro.