سؤال

أقوم بتطوير تطبيق عميل/خادم سيتواصل عبر الراحة.سيتم تخزين بعض بيانات الطلب المخصصة في رأس الطلب.يتمتع كل من الخادم الذي يرسل الطلب والخادم المتلقي بشهادة SSL - هل سيتم تشفير الرؤوس أم المحتوى فقط؟

هل كانت مفيدة؟

المحلول

تقوم طبقة المقابس الآمنة (SSL) بتشفير مسار الاتصالات بالكامل من العميل إلى الخادم والعودة، لذا نعم - سيتم تشفير الرؤوس.

بالمناسبة، إذا كنت تقوم بتطوير تطبيقات شبكية وتهتم بأمن البيانات، فأقل ما يجب عليك فعله هو قراءة كتاب مثل Practical Cryptography، من تأليف Niels Ferguson وBruce Schneier، وربما تكون القراءة الإضافية التي تركز بشكل أكبر على أمان تطبيقات الويب أمرًا جيدًا فكرة.إذا جاز لي أن أبدي ملاحظة - ومن فضلك، لا أقصد ذلك انتقادًا شخصيًا - فإن سؤالك يشير إلى نقص أساسي في فهم تقنيات أمان الويب الأساسية للغاية، وهذه ليست علامة جيدة أبدًا.

كما أنها ليست فكرة سيئة أبدًا التأكد من أن البيانات التي يُفترض أنها مشفرة هي بالفعل مشفرة.يمكنك استخدام محلل الشبكة لمراقبة حركة المرور على السلك والاحتراس من إرسال أي شيء حساس بشكل واضح.لقد استخدمت Wireshark للقيام بذلك من قبل - قد تكون النتائج مفاجئة في بعض الأحيان.

نصائح أخرى

طالما أنك تتواصل عبر نفق SSL، فسيتم تشفير كل شيء يتم إرساله بين الخادم والعميل.يتم التشفير قبل إرسال أو استلام أي بيانات.

يتم تشفير كل من الرؤوس والمحتوى.

يبدو أنك تعتقد أن REST هو بروتوكول متميز.

REST ليس بروتوكولًا.إنه أسلوب تصميم للتطبيقات المستندة إلى HTTP.

لذا، عليك كتابة تطبيق HTTP.هل الرؤوس مشفرة؟نعم، إذا كنت تستخدم بروتوكول HTTPS (HTTP عبر SSL) بدلاً من HTTP العادي.

إن الحصول على شهادات من كلا الجانبين ليس له صلة مباشرة بسؤالك.يتم استخدام شهادات SSL للمصادقة.إنها تساعد في اكتشاف هجمات الوسيط، مثل تلك التي يمكن حدوثها باستخدام تسمم ذاكرة التخزين المؤقت لنظام أسماء النطاقات (DNS).

إن الحصول على شهادة لا يكفي، يجب عليك تكوين خادم الويب لتشفير الاتصالات (أي استخدام الشهادة) لذلك المجال أو المضيف الظاهري.بالإضافة إلى ذلك، أعتقد أنك ستحتاج فقط إلى شهادة واحدة، وستظل الردود على الطلبات مشفرة.

ونعم، يتم تشفير رؤوس HTTP وكذلك البيانات.

SSL.. أو بالأحرى HTTPS (HTTP عبر SSL) يرسل كل محتوى HTTP عبر SSL، وبما أن محتوى HTTP والرؤوس هي في الواقع نفس الشيء، فهذا يعني أن الرؤوس مشفرة أيضًا.نظرًا لأنه يتم إرسال بيانات GET وPOST عبر رؤوس HTTP، فمن المنطقي أنه عند إرسال البيانات بشكل آمن، لن ترغب فقط في تشفير رمز الاستجابة أو المحتوى.

الإجابات الأخرى صحيحة حيث يتم تشفير الرؤوس بالفعل، بالإضافة إلى النص الأساسي، عند استخدام SSL.لكن ضع في اعتبارك أن عنوان URL، الذي يمكن أن يتضمن معلمات الاستعلام، هو أبداً مشفرة.لذا كن حذرًا حتى لا تضع أبدًا أي معلومات حساسة في معلمات استعلام URL.

تحديث: كما أشارblowdart أدناه، هذا خطأ.انظر التعليق أدناه.

لا كل شئ مشفرة:سلسلة استعلام الطلب غير مشفرة.صدقوني، لقد رأيت طلبات مثل هذا:

https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

من فضلك لا تضع بيانات حساسة كمعلمات في سلسلة الاستعلام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top