ওয়েব অ্যাপ্লিকেশন প্রমাণীকরণ / সুরক্ষা (যে কোনও প্ল্যাটফর্ম) এর জন্য সেরা অনুশীলন


12

আমার ম্যানেজারের কাছ থেকে আজ একটি প্রশ্ন পেয়েছিলাম যা ওয়েব ফর্ম অ্যাপ্লিকেশনটির প্রমাণীকরণের জন্য গ্রহণযোগ্য নকশা হিসাবে বিবেচিত তা সম্পর্কে আমার চিন্তাভাবনা জিজ্ঞাসা করেছে, বিশেষত আপনার জনপ্রিয় ব্যবহারকারীর নাম পাসওয়ার্ড লগইন ক্ষেত্রগুলির জন্য "জনপ্রিয় পাসওয়ার্ড মনে রাখবেন" অনেক জনপ্রিয় ব্রাউজারের প্রকৃতির সাথে সম্পর্কিত ।

আমি উত্তরটি গ্রহণযোগ্য যে আমি মনে করি এমন উত্তর নিয়ে আসতে আমার সমস্যা হচ্ছে। সোনির আত্মরক্ষামূলক সুরক্ষা ত্রুটিগুলির আলোকে, আমি সত্যিই সাবধানতা অবলম্বন করতে চাই, যদিও লোকেরাতে ডেটা সংরক্ষণ করা হয় তা সংবেদনশীলতা খুব কম। আমরা সামাজিক সুরক্ষা নম্বর বা এমনকি ঠিকানাগুলি সঞ্চয় করছি না তবে আমরা ফোন নম্বর, ইমেল ঠিকানা এবং কোনও দর্শকের ছবি সংরক্ষণ করছি।

তিনি উদ্বিগ্ন যে কোনও ব্যবহারকারী কোনও পাবলিক টার্মিনালে কেবল পাসওয়ার্ড মনে রাখতে পারে, তবে কেউ এই টার্মিনালে ঝাঁপিয়ে পড়তে পারেন এবং অননুমোদিত উপায়ে ডেটা দেখতে বা পরিবর্তন করতে শুরু করতে পারেন। আমি মোটামুটি নিশ্চিত যে কমপক্ষে উইন্ডোজ ওয়ার্কস্টেশনগুলিতে যে ব্রাউজারটি উইন্ডোজ ব্যবহারকারীর অ্যাকাউন্টগুলিতে "পাসওয়ার্ড মনে রাখবে" না।

এর বাইরে আমি সার্ভার সাইডে ওয়ান ওয়ে পাসওয়ার্ড এনক্রিপশন প্রয়োগ করছি (ডাটাবেসে এনক্রিপ্ট করা পাসওয়ার্ড সংরক্ষণ করুন, সার্ভারে এনক্রিপ্ট করা ব্যবহারকারী সাপ্লাই করা পাসওয়ার্ড, ডাটাবেস থেকে এনক্রিপ্ট করা স্ট্রিংয়ের সাথে তুলনা করুন)। এসএসএল এনক্রিপশন অন্তর্ভুক্ত করার জন্য কোনও তাত্ক্ষণিক পরিকল্পনা নেই তবে এটি এখনও একটি বিকল্প।

এই পদ্ধতির সাথে কোনও সুরক্ষার ত্রুটি রয়েছে কি? আপনার কি আরও ভাল পরামর্শ আছে?


ওয়ান-ওয়ে এনক্রিপ্ট করা (অর্থাত্ হ্যাশ) পাসওয়ার্ডটি সংরক্ষণ করার সময়, নিশ্চিত হয়ে নিন যে আপনি একটি শক্তিশালী হ্যাশ ব্যবহার করেছেন (অর্থাত্ MD5 নয়) অথবা পাসওয়ার্ডটি লবণের ( stackoverflow.com/questions/420843/… দেখুন ) বা উভয়ই ব্যবহার করুন।
জর্ডান রিটার

ওডাব্লুএএসপি ওয়েবসাইট ( owasp.org ) দেখুন। বিভিন্ন প্রোটোকলের জন্য "চিট শীট" সহ তাদের কাছে প্রচুর দরকারী দরকারী সুরক্ষা তথ্য রয়েছে।
রাল্ফ

ফর্ম ভিত্তিক ওয়েবসাইট প্রমাণীকরণের জন্য এখানে কিছু গাইডলাইন রয়েছে stackoverflow.com/a/477578/463478
কেবল আপনি

উত্তর:


13

কিছু উচ্চ স্তরের টিপস:

  1. আপনার প্রয়োজনীয় ডেটা সংরক্ষণ করুন
  2. সংবেদনশীল ডেটা (এসএসএন, পাসওয়ার্ড, ক্রেডিট কার্ড # ইত্যাদি) যখন আপনি সঞ্চয় করেন তখন সর্বদা এনক্রিপ্ট করুন
  3. সংবেদনশীল ডেটা প্রেরণ / গ্রহণ করার সময় এসএসএল ব্যবহার করে সর্বদা ট্র্যাফিক এনক্রিপ্ট করুন
  4. যদি তথ্যের সংবেদনশীলতা সম্পর্কে সন্দেহ থাকে তবে এটি এনক্রিপ্ট করুন
  5. ব্যবহারকারীর ইনপুট বিশ্বাস করবেন না (কেউ খারাপ কিছু প্রবেশ করার চেষ্টা করবে)
  6. আপনার ডেটা বিশ্বাস করবেন না (কেউ এটি ডাটাবেসে পরিবর্তন করতে পারে - উদাহরণস্বরূপ দূষিত স্ক্রিপ্ট ইনজেকশন)
  7. আপনার নিজস্ব এনক্রিপশন রোল করবেন না
  8. অ্যাপ্লিকেশন / ডাটাবেস হোস্টিং সার্ভার সুরক্ষিত
  9. সুরক্ষার স্বার্থে শেষ ব্যবহারকারীদের উপর বোঝা বৃদ্ধি করুন (পাসওয়ার্ড বিধিনিষেধ, কখনই পাসওয়ার্ড প্রকাশ করবেন না, ইমেলটিতে ইউআরএল প্রেরণ করবেন না, সেশনের সময় হ্রাস করবেন ইত্যাদি)

আপনার কাছে আমার পরামর্শ হ'ল ওয়েব অ্যাপ্লিকেশনগুলি সুরক্ষিত করার জন্য একটি বই পাওয়া। একটি একক উত্তর / ব্লগ / নিবন্ধে জানাতে খুব বেশি তথ্য রয়েছে। একা এনক্রিপশনের বিষয়টি যথেষ্ট।


নিজস্ব এনক্রিপশন রোল না করে এসএসএল ব্যবহার করার পিছনে যুক্তি কী? আপনি কি ডাব্লুএস-সুরক্ষা নিজের এনক্রিপশন ঘূর্ণায়মান মত কিছু ব্যবহার বিবেচনা করবেন? এসএসএল সেটআপ করা ব্যথা হতে পারে।
মিঃ জেফারসন

এটি ভাল চেকলিস্ট। আমি অবাক হয়েছি যে এর চেয়ে বেশি ভোট হয়নি।
ক্রিস্টোফার হচ

2
@ মিঃ জেফারসন আমি "আপনার নিজের এনক্রিপশন রোল" করতে চাইলে 99.999999% বলতাম।
Zach Leighton

2

আপনি ব্রাউজারের আচরণটি বেশি চালানোর চেষ্টা করতে পারেন - কিছু ভাল পরামর্শ এখানে:

/programming/32369/disable-browser-save-password-functionality


1
ভাল লিঙ্ক। আমি ব্যক্তিগতভাবে মনে করি না যে এটির মতো ব্যবহারকারীর পছন্দগুলি ওভাররাইড করা বিকাশকারী হিসাবে আমাদের ব্যবসা, তবে আমি যে ক্লায়েন্ট এটির দাবি করেছিল তার জন্য একটি সাইট করেছি, সুতরাং এটি কীভাবে করা যায় তা জানা গুরুত্বপূর্ণ ।
কারসন 63000 21

1

আমি বলছি তোমার ভাল থাকা উচিত।

বেশিরভাগ ব্যবহারকারীর পাবলিক টার্মিনালে তাদের পাসওয়ার্ড সংরক্ষণ না করার জন্য যথেষ্ট উজ্জ্বল হতে চলেছে এবং প্রোফাইলের মধ্যে পাসওয়ার্ডগুলি সংরক্ষণ করা হবে। মনে রাখবেন তারা ঠিক এটি সহজেই একটি স্টিকি নোটে লিখতে বা দুর্বল পাসওয়ার্ড ব্যবহার করতে পারে।

লগইন পৃষ্ঠাটি যদি এসএসএলে এনক্রিপ্ট না করা হয় তবে কোনও আক্রমণকারীর পক্ষে নেটওয়ার্কে ভ্রমণ করার সাথে সাথে সেই পাসওয়ার্ডটি স্নিগ্ধ করা খুব কঠিন হবে না। ডাটাবেসে পাসওয়ার্ড হ্যাশ করা ভাল কাজ, এটিই একজন সম্ভাব্য আক্রমণকারীকে প্রত্যেকের পাসওয়ার্ড দেখতে বাধা দেবে (যা তারা ব্যবহারকারীরা যে কোনও সাইটে থাকতে পারে এমন ইমেল ঠিকানা দিয়ে ব্যবহার করতে পারে)

আপনি যদি এখনও এটি চান, চাদ নির্দেশ করেছেন যেভাবে ব্রাউজারের আচরণটি অক্ষম করার উপায় রয়েছে। আমি কেবল এটি আমার ব্যাঙ্কের ওয়েবসাইট এবং মাইক্রোসফ্টের লাইভ সিস্টেমে দেখেছি।


দুর্দান্ত পোস্ট, আমি যুক্ত করতে ভুলে গেছি যে ব্যবহারকারীর নামটি ইমেল ঠিকানা হবে না, তবে কোনও ব্যবহারকারীর সিস্টেমে একটি ইমেল ঠিকানা থাকবে। মজার বিষয় আপনি এটি উল্লেখ করেছেন কারণ ফেসবুকের মতো জনপ্রিয় সাইটগুলি ইমেল অ্যাডাইস এবং পাসওয়ার্ডগুলির জন্য প্যাকেট স্নিফিংয়ের পক্ষে সংবেদনশীল।
maple_shaft

আমি আরও যোগ করতে চাই যে আমি আমার অ্যাপ্লিকেশনটিতে দুর্বল সুরক্ষা মডেলটির জন্য অগত্যা "অজুহাত" হিসাবে ফেসবুকের সুরক্ষা ত্রুটিগুলি নির্দেশ করছি না। শুধু কারণ জোয়ি এর মায়ের তার ব্যাপারে অপেক্ষা কর রেট আর চলচ্চিত্র এটা সঠিক :) দেখা যায় না দেয়
maple_shaft

1

একটি নির্দিষ্ট সময়ে, আপনি নিজের থেকে কোনও ব্যবহারকারীকে সুরক্ষিত করতে পারবেন না (এবং আইনগতভাবে এটির প্রয়োজনও নেই)। "পাসওয়ার্ড মনে রাখবেন" কার্যকারিতা ঝুঁকিপূর্ণ হতে পারে তবে এটি ব্যবহারকারী দ্বারা ঝুঁকিপূর্ণ। তেমনিভাবে, যদি ব্যবহারকারী একাধিক পরিষেবার জন্য তাদের পাসওয়ার্ড পুনরায় ব্যবহার করার সিদ্ধান্ত নেন, তারা সেই ঝুঁকিটিও ধরে নেন। আপনার তাদের পাসওয়ার্ডগুলি একটি স্টিকি নোটে না লিখে এবং এটি তাদের মনিটরে আটকে রাখতে সতর্ক করারও প্রয়োজন হয় না, যদিও ব্যবহারকারীরা প্রায়শই এটি করেন।

এটি হ'ল যতক্ষণ না কেউ সফলভাবে আইন প্রয়োগ ও নিয়ম পরিবর্তন করে। আরও দেখুন: "সতর্কতা: সামগ্রীগুলি গরম হতে পারে"।


0

ব্রাউজার কোনও পাসওয়ার্ড মনে রাখে বা না তা আপনি নির্ভরযোগ্যভাবে নিয়ন্ত্রণ করতে পারবেন বলে আমি মনে করি না। ব্রাউজারটি তা করে কিনা তা কেবল আপনার হাতের বাইরে। এটা এমন কি অগত্যা জন্য বিপুল নিরাপত্তা ঝুঁকি হয় আপনি । আপনার সর্বদা অনুমান করা উচিত যে বৈধ লগইন থেকে আক্রমণ করা যেতে পারে। অনুমান করবেন না কারও কারও কাছে বৈধ লগইন ব্যবহারকারী / পাস রয়েছে যে তারা কোনও লাভই করবে না। সর্বোপরি পাসওয়ার্ডগুলি ভুল হাতে পড়তে পারে ways

আমি অনুমান করি আপনি যা করতে পারেন তা প্রতিবার আপনার লগইন ফর্মের ক্ষেত্রের নামগুলি এলোমেলো করে দেওয়া। পরিবর্তে <input name="username", এর মতো কিছু ব্যবহার করুন <input name="user658667587"। এটি ক্যাশেড ব্যবহারকারীর নামগুলি মোটামুটি অকেজো করে তুলবে। তবে আমি জানি না ওভারহেডের পক্ষে এটি মূল্যবান হবে কিনা। না উল্লেখ করতে inconveniencing ব্যবহারকারী যারা arent প্রকাশ্য মেশিনে।

আপনি যদি অত্যন্ত সুরক্ষিত সংবেদনশীল পরিস্থিতিতে থাকেন (ব্যাংকিং, বিনিয়োগ) আপনি লগনের সময় লোকজনকে জিজ্ঞাসা করতে পারেন এটি কোনও পাবলিক মেশিন কিনা। লোকেরা লগ ইন করার সময় আপনি পরিচিত আইপি অ্যাড্রেসগুলিও ক্যাশে করতে পারেন এবং যদি তারা অন্য কোনও স্থান থেকে লগইন করে থাকে তবে সাধারণ ব্যবহারকারী / পাসের পাশাপাশি একটি টাইপযোগ্য পিন নম্বর (প্রাক্তন চিত্রগুলি ক্লিক করুন) প্রয়োজন require আমার ব্যাংক এর মতো কিছু করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.