سؤال

هل POST آمن بدرجة كافية لإرسال بيانات اعتماد تسجيل الدخول؟

أم أن اتصال SSL أ يجب?

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

المحلول

SSL أمر لا بد منه.POST ليس أكثر أمانًا من GET لأنه يتم إرساله أيضًا بشكل غير مشفر.ستغطي طبقة المقابس الآمنة (SSL) اتصال HTTP بالكامل وستقوم بتشفير بيانات HTTP المرسلة بين العميل والخادم.

نصائح أخرى

<shameless plug>انا املك مشاركة مدونة يوضح بالتفصيل كيف يبدو طلب HTTP وكيف يقارن طلب GET بطلب POST.من أجل الإيجاز، احصل على:

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

والنشر:

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(CRLF هو مجرد سطر جديد)

كما ترون، فإن الاختلافات الوحيدة من وجهة نظر كيفية تشكيل الطلب* هي أن طلب POST يستخدم كلمة POST ويتم إرسال بيانات النموذج في نص الطلب مقابل URI.وبالتالي، فإن استخدام HTTP POST هو أمان بسبب الغموض.إذا كنت تريد حماية البيانات، فيجب عليك استخدام SSL.

* لاحظ أن هناك نكون اختلافات أخرى.

هذا يعتمد على ظروفك، كم سيكلف اعتراض بيانات الاعتماد شخص ما؟

إذا كان الأمر مجرد تسجيل دخول إلى موقع أسئلة وأجوبة خاص بالبرامج، فقد لا تكون طبقة المقابس الآمنة (SSL) ضرورية، وإذا كان موقعًا للخدمات المصرفية عبر الإنترنت أو تقوم بتخزين بيانات بطاقة الائتمان، فهو كذلك.
هذا عمل وليس قرار فني.

HTTP POST غير مشفر، ويمكن اعتراضه بواسطة متسلل شبكة، أو بواسطة وكيل، أو تسريبه في سجلات الخادم بمستوى تسجيل مخصص.نعم، POST أفضل من GET لأن بيانات POST ليست كذلك عادة تسجيل بواسطة وكيل أو خادم، ولكن الأمر ليس كذلك يؤمن.لتأمين كلمة مرور أو بيانات سرية أخرى، يجب عليك استخدام SSL أو تشفير البيانات قبل النشر.هناك خيار آخر يتمثل في استخدام Digest Authentication مع المتصفح (راجع RFC 2617).تذكر أن التشفير (المنشأ محليًا) ليس كافيًا لمنع هجمات إعادة التشغيل، فيجب عليك ربط رقم nonce وبيانات أخرى (على سبيل المثال.المجال) قبل التشفير (راجع RFC 2617 لمعرفة كيفية القيام بذلك في Digest Auth).

SSL أمر لا بد منه :)

يتم إرسال HTTP Post بنص عادي.على سبيل المثال، قم بتنزيل Fiddler واستخدامه لمشاهدة حركة مرور HTTP.يمكنك بسهولة رؤية المنشور بأكمله هناك (أو عبر مراقب حركة مرور الشبكة مثل WireShark)

أنها ليست آمنة.يمكن استنشاق POST بنفس السهولة التي يمكن بها استنشاق GET.

لا...POST ليس آمنًا بدرجة كافية على الإطلاق.SSL أمر لا بد منه.

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

الطريقة الأكثر أمانًا هي عدم إرسال بيانات الاعتماد على الإطلاق.

إذا كنت تستخدم ملخص صحة البيانات, ، إذن SSL هو لا لازم.

(ملاحظة:لا أعني أن مصادقة الملخص عبر HTTP تكون دائمًا أكثر أمانًا من استخدام POST عبر HTTPS).

POST هو نص عادي.

اتصال آمن أمر لا بد منه.

ولهذا السبب يطلق عليه اتصال آمن.

لا، استخدم SSL.

مع POST، لا يزال يتم تقديم القيم كنص عادي ما لم يتم استخدام SSL.

والفرق الوحيد بين HTTP GET وHTTP POST هو الطريقة التي يتم بها تشفير البيانات.وفي كلتا الحالتين يتم إرساله كنص عادي.

من أجل توفير أي نوع من الأمان لبيانات اعتماد تسجيل الدخول، يعد HTTPS أمرًا ضروريًا.

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

طلب POST وحده غير آمن لأن جميع البيانات "تنتقل" بنص عادي.

أنت بحاجة إلى SSL، لجعلها آمنة.

يتم إرسال بيانات POST بنص عادي إذا كنت تستخدم اتصال HTTP غير مشفر.إذا كان هذا آمنًا بدرجة كافية يعتمد على استخدامك (تلميح:ليست كذلك).

إذا كان كل من الخادم وجهاز العميل وجميع الأجهزة بينهما جزءًا من شبكة خاضعة للتحكم وموثوقة تمامًا، فقد يكون هذا أمرًا جيدًا.

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

أرجو الاطلاع على هذا المقال الرائع:

الحماية من طلبات POST الضارة

https://perishablepress.com/protect-post-requests/

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