في ملقم-عميل التطبيق:كيفية إرسال إلى DB التطبيق المستخدم كلمة المرور ؟

StackOverflow https://stackoverflow.com/questions/70170

سؤال

لدي جافا تطبيقات سطح المكتب اللي تبونه يربط مباشرة مع قاعدة البيانات (Oracle).التطبيق لديه حسابات متعددة.ما هي الطريقة الصحيحة لإرسال كلمة مرور المستخدم (لا DB كلمة المرور) على الشبكة ؟ أنا لا ترغب في إرسال نص عادي

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

المحلول

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

نصائح أخرى

يمكنك استخدام اتصال SSL بين عميل أوراكل و قاعدة بيانات أوراكل.إلى تكوين SSL بين أوراكل العميل والخادم باستخدام JDBC:

في جانب الملقم:

1) أولا وقبل كل شيء ، المستمع يجب أن يتم تكوين لاستخدام برامج البروتوكول:

LISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484)))

WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/server/wallet/path/)))

في جانب العميل:

1) بعد الجرار يحتاج إلى classpath ojdb14.jar, oraclepki.jar, ojpse.jar

2) URL المستخدمة في الاتصال يجب أن تكون:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename)))

3) الخصائص التالية يحتاج إلى أن يتم تعيين (إما نظام الملكية (-د خيارات) أو خصائص اتصال)

javax.net.ssl.trustStore, 
javax.net.ssl.trustStoreType, 
javax.net.ssl.trustStorePassword

المرجع: http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/wp-oracle-jdbc_thin_ssl_2007.pdf

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

بهذه الطريقة, كلمة السر اختار المستخدم (المستخدم قد تستخدم في أي مكان آخر) هو لم ترسل ، في حين مؤقتة يتم إرسال كلمة المرور في نص عادي ، ينبغي تغييره بعد فترة وجيزة.

إذا كنت لا ترغب في إرسال البيانات في نص عادي ، استخدام التشفير !!!

استخدام بعض خوارزمية التشفير مثل AES ، تووفيش.... الخ

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

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

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

إذا كنت تتصل أوراكل مع أورا*صافي المستخدم كلمة السر تلقائيا تشفير (منذ Oracle 8) ومع ذلك فإنه قد تقع مرة أخرى إلى كلمات مرور غير مشفرة في بعض الحالات.هذا يمكن تعطيل مع ORA_ENCRYPT_LOGIN=true في بيئة العميل.

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