Sécuriser Google authentification
-
25-09-2019 - |
Question
Je dois faire une requête à l'un des services de Google. J'ai lu cette réponse: télécharger csv de Google pour un aperçu
Le code copié et collé à partir de cette question est:
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);
}
et je veux savoir si l'envoi du mot de passe dans la chaîne est sécurisée ou peut-il être saisi?
Si ce n'est pas garanti, comment faut-il faire?
La solution
Comme il utilise https (pas HTTP simple), il devrait être à peu près aussi sûr que la plupart rien ne peut jamais être autre chose sur le net. Toutes les données, y compris l'URL, Voyage sur un canal crypté une fois établie de la connexion TLS sous-jacente.
Autres conseils
Ceci est un de ces "bonnes nouvelles, mauvaises nouvelles" des situations.
Bonnes nouvelles: Le mot de passe ne peut pas être saisi par un indiscret (car il est envoyé via HTTPS: crypté).
Les mauvaises nouvelles: le cookie de session peut être saisi par un indiscret (car il est envoyé sur HTTP: non crypté). Comme Firesheep a démontré, de laisser quelqu'un d'avoir accès à votre cookie de session Google est dangereux, car il donne l'accès à votre attaquant e-mail et d'autres contenus stockés sur Google.
Si vous pouvez modifier l'URL de http
à une URL de https
, ce serait plus sûr.