تأمين مصادقة Google
-
25-09-2019 - |
سؤال
أحتاج إلى إجراء استعلام لأحد خدمات Google. قرأت هذه الإجابة: قم بتنزيل CSV من Google Insight للبحث
الكود المنسخ واللصق من هذا السؤال هو:
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);
}
وأريد أن أعرف ما إذا كان إرسال كلمة المرور في السلسلة آمنة أم يمكن الإمساك بها؟
إذا لم يتم تأمين هذا ، فكيف ينبغي القيام به؟
المحلول
لأنه يستخدم https (ليس HTTP عادي) يجب أن يكون آمنًا مثلما يمكن أن يكون معظم أي شيء آخر على الشبكة. جميع البيانات ، بما في ذلك عنوان URL ، تسافر على قناة مشفرة بمجرد إنشاء اتصال TLS الأساسي.
نصائح أخرى
هذه واحدة من مواقف "الأخبار السارة ، الأخبار السيئة".
أخبار سارة: لا يمكن الاستيلاء على كلمة المرور بواسطة التنصت (لأنه يتم إرسالها عبر https: مشفرة).
الأخبار السيئة: يمكن الاستيلاء على ملف تعريف الارتباط للجلسة بواسطة التنصت (لأنه يتم إرساله عبر HTTP: غير مشفر). كما أوضح FireSheep ، فإن السماح لشخص ما بالوصول إلى ملف تعريف الارتباط في جلسة Google أمر خطير ، لأنه يتيح للمهاجم الوصول إلى بريدك الإلكتروني والمحتوى الآخر المخزن على Google.
إذا كنت تستطيع تغيير http
عنوان URL ل https
عنوان URL ، سيكون ذلك أكثر أمانًا.