এসএসএল ছাড়া না
সরল পাঠ্যে পাসওয়ার্ড যদি নেটওয়ার্কের কাছে পাঠানো হয় তবে এটি নিরাপদ নয়। সরল পাঠ্যে পাসওয়ার্ডটি যদি নেটওয়ার্কে প্রেরণ করা হয় তবে সার্ভারের পাশ দিয়ে পাসওয়ার্ড হ্যাশ করাও নিরাপদ নয়।
যেহেতু এইচটিএমএল <input type="password"/>
ট্যাগ এর বিষয়বস্তু সরল পাঠ্যে প্রেরণ করে, তাই আপনি সার্ভারে পাসওয়ার্ড কীভাবে সংরক্ষণ করবেন তা বিবেচনা করা আপনার সমস্যা নয়, যদি না আপনার ওয়েবসাইটটি পাসওয়ার্ড প্রেরণ করতে এসএসএল ব্যবহার করে না।
(এইচটিটিপি প্রমাণীকরণ, যা একটি পাসওয়ার্ড চেয়ে ব্রাউজারে একটি ডায়ালগ বাক্স পপ আপ করে, সার্ভার এবং ব্রাউজারে কোন প্রমাণীকরণ পদ্ধতিতে সাধারণ বিষয় রয়েছে তার উপর নির্ভর করে স্পষ্ট পাঠ্য বা নাও থাকতে পারে So সুতরাং এটি ব্যবহার না করে এড়াতে পারা উপায় a SSL এর।)
সাইট প্রশাসকরা সন্দেহ হলে নয়
এখন, ধরুন আপনি ওয়েব সাইটটি করার জন্য এইচটিটিপিএস ব্যবহার করছেন, আপনি যদি নিজের সাইট প্রশাসকদের (যিনি সরল পাঠ্য পাসওয়ার্ড পড়তে পারেন), এবং মেশিনে সঠিকভাবে আচরণ করার জন্য অ্যাক্সেস প্রাপ্ত লোকদের উপর নির্ভর করেন তবে এটি নিরাপদ হতে পারে। এখন, এটি স্পষ্ট হতে পারে যে তারা আপনার ওয়েবসাইটের সাথে তারা যা কিছু করতে পারে (যেহেতু তারা এটি পরিচালনা করে) তবে তারা যদি পাসওয়ার্ডটি পড়তে পারে তবে অন্য ব্যক্তির সাইটে চুরি হওয়া লগইন / পাসওয়ার্ড জোড়াও ব্যবহার করতে সক্ষম হতে পারে।
প্রশাসকের কাছ থেকে পাসওয়ার্ডগুলি সুরক্ষিত রাখার একটি উপায়
পাসওয়ার্ডগুলি সংরক্ষণ এবং চেক করার একটি নিরাপদ উপায় নিম্নরূপ:
def change_password user, new_password
salt = random(65536).to_s(16) #will be 4 characters long
password_hash = salt + hash(salt + new_password)
store(user,password_hash)
end
def does_password_match? user, entered_password
correct_password_hash = retrieve(user)
salt = correct_password_hash[0...4]
entered_password_hash = salt + hash(salt + entered_password)
return correct_password_hash == entered_password_hash
end
হ্যাশ ফাংশনের জন্য, শক্তিশালী কিছু ব্যবহার করার চেষ্টা করুন এবং এমন কিছু যা বুনোতে ভাল রংধনু টেবিল নেই। রেনবো টেবিলের আশেপাশে প্রয়োজনীয় কাজ করা হলে আপনি লবণের দৈর্ঘ্য পরিবর্তন করতে পারেন।
আপনার পরিবেশের উপর নির্ভর করে, আপনার নেটওয়ার্কের প্রচ্ছন্নতার পরিবর্তনশীলতা এবং ব্যবহারকারীর নামগুলি সর্বজনবিদিতভাবে পরিচিত কিনা তা বোঝা যাচ্ছে, hash('0000'+entered_password)
আক্রমণকারীদের হাত থেকে রোধ করার জন্য ব্যবহারকারীর উপস্থিতি না থাকলে আপনি অন্য একটি কোড পাথের গণনা করতে চাইতে পারেন কোন ব্যবহারকারীর নাম বৈধ কিনা তা নির্ধারণের সময় নিরীক্ষণ করে যে পাসওয়ার্ডটি ভুল।