টোকেন-ভিত্তিক প্রমাণীকরণ কী?


514

টোকেন-ভিত্তিক প্রমাণীকরণের অর্থ কী তা আমি বুঝতে চাই। আমি ইন্টারনেটে অনুসন্ধান করেছি কিন্তু কিছুই বুঝতে পেলাম না।


17
আমি প্রচুর বিবরণ পড়েছি, তবে এগুলি সমস্তই কংক্রিটের বিবরণে হালকা মনে হয়েছিল। এই নিবন্ধটি শেষ পর্যন্ত আমাকে সাহায্য করেছে: scotch.io/tutorials/the-anatomy-of-a-json-web-token
ক্রিস কনভারের

উত্তর:


543

আমি মনে করি এটি এখানে ভালভাবে ব্যাখ্যা করা হয়েছে - দীর্ঘ নিবন্ধের মূল বাক্যগুলির উদ্ধৃতি:

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

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

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

যদি এখনও কিছু অস্পষ্ট থাকে তবে দয়া করে আপনার প্রশ্নটি সম্পাদনা করুন যা আপনার কাছে 100% পরিষ্কার নয় এবং আমি নিশ্চিত যে আমরা আপনাকে আরও সাহায্য করতে পারি।


6
আমি কি এই ভেবে সঠিক হয়েছি যে কোনও ওয়েব অ্যাপ্লিকেশনটিতে, দূরবর্তী ওয়েব সাইট থেকে একটি (বা আরও) কুকিজ টোকেনের কাজটি সম্পাদন করে?
এজেপি

29
টোকেনগুলি কুকি হিসাবে সংরক্ষণ করা হয়, এমন কোনও ব্যক্তি কি সেই কুকি / টোকেন চুরি করে এবং সেটিকে নিজেরাই ব্যবহার করে, সার্ভারকে ট্রিক করে এইটিকে অনুমোদিত ব্যবহারকারী হিসাবে ঠেকিয়ে রাখার মতো কোনও জায়গা আছে? স্পষ্টতই তারা এটি কেবলমাত্র পরিমাণ পরিমাণের জন্য ব্যবহার করতে পারত, কিন্তু সেই সময়ের মধ্যে তারা তাদের যাবতীয় ক্ষয়ক্ষতি করতে পারে।
বেনম

40
এটি কীভাবে সেশনআউথেন্টিকেশন থেকে আলাদা, যেখানে ব্যবহারকারী তার ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রবেশ করে একটি সেশন_আইডি পেতে পারেন এবং তারপরে অনুরোধে এই সেশন_আইডি ব্যবহার করবেন?
সৌরভ ভার্মা

4
টোকেনটির মেয়াদ শেষ হলে ব্যবহারকারীকে নতুন টোকেন পেতে আবার লগ ইন করতে হবে?
অ্যান্টনি

12
@ সৌরভ ভার্মা এটি একটি সেশনের থেকে আলাদা কারণ আপনাকে কোনও কুকিতে তথ্য সংরক্ষণ করতে হবে না। এটি মোবাইল ডিভাইসের জন্য দুর্দান্ত, যার মধ্যে কয়েকটিতে কুকি ব্যবহারে বিধিনিষেধ রয়েছে।
কেবম্যান

182

Auth0.com থেকে

টোকন-ভিত্তিক প্রমাণীকরণ, প্রতিটি অনুরোধে সার্ভারে প্রেরিত স্বাক্ষরিত টোকেনের উপর নির্ভর করে।

টোকেন-ভিত্তিক পদ্ধতির ব্যবহারের সুবিধা কী কী?

  • ক্রস-ডোমেন / কর্স: কুকিজ + সিআরএস বিভিন্ন ডোমেন জুড়ে ভাল খেল না। একটি টোকেন-ভিত্তিক পদ্ধতির সাহায্যে আপনাকে যে কোনও সার্ভারে, যে কোনও ডোমেইনে এজ্যাক্স কল করার অনুমতি দেয় কারণ আপনি ব্যবহারকারীর তথ্য প্রেরণের জন্য এইচটিটিপি শিরোনাম ব্যবহার করেন।

  • স্টেটলেস (ওরফে সার্ভারের পাশের স্কেলাবিলিটি): সেশন স্টোর রাখার দরকার নেই, টোকেন হ'ল একটি স্ব-অন্তর্ভুক্ত সত্তা যা ব্যবহারকারীর সমস্ত তথ্য জানায়। রাজ্যের বাকি অংশগুলি ক্লায়েন্ট পক্ষের কুকিজ বা স্থানীয় স্টোরেজে বাস করে।

  • সিডিএন: আপনি কোনও সিডিএন (যেমন জাভাস্ক্রিপ্ট, এইচটিএমএল, চিত্রগুলি, ইত্যাদি) থেকে আপনার অ্যাপ্লিকেশনটির সমস্ত সম্পদ পরিবেশন করতে পারেন এবং আপনার সার্ভারের দিকটি কেবলমাত্র এপিআই।

  • ডিকোপলিং: আপনি কোনও নির্দিষ্ট প্রমাণীকরণ স্কিমের সাথে আবদ্ধ নন। টোকেনটি যে কোনও জায়গায় তৈরি হতে পারে, সুতরাং আপনার এপিআইগুলি যে কোনও কল থেকে এই কলগুলি প্রমাণীকরণের একক উপায়ের সাথে কল করা যেতে পারে।

  • মোবাইল প্রস্তুত: আপনি যখন কোনও নেটিভ প্ল্যাটফর্মের (আইওএস, অ্যান্ড্রয়েড, উইন্ডোজ 8 ইত্যাদি ইত্যাদি) কাজ শুরু করেন তখন টোকেন-ভিত্তিক পদ্ধতি গ্রহণ করার সময় কুকিগুলি আদর্শ হয় না this

  • সিএসআরএফ: যেহেতু আপনি কুকিজের উপর নির্ভর করছেন না, তাই আপনার ক্রস সাইট অনুরোধগুলি থেকে রক্ষা করার প্রয়োজন নেই (উদাঃ আপনার সাইটটি sib করা, কোনও পোষ্ট অনুরোধ উত্পন্ন করা এবং বিদ্যমান প্রমাণীকরণ কুকিটি পুনরায় ব্যবহার করা সম্ভব হবে কারণ কোনও কিছুই থাকবে না) )।

  • পারফরম্যান্স: আমরা এখানে কোনও হার্ড পারফেক্ট বেঞ্চমার্ক উপস্থাপন করছি না, তবে একটি নেটওয়ার্ক রাউন্ডট্রিপ (উদাহরণস্বরূপ ডাটাবেসে সেশন সন্ধান করা) একটি টোকেনকে বৈধতা দেওয়ার জন্য এবং এর সামগ্রীগুলি বিশ্লেষণ করার জন্য এইচএমএসিএএসএ 25২২ গণনা করার চেয়ে বেশি সময় নিতে পারে।


6
@Asik সমস্ত এখানে পয়েন্ট যখন আপনি টোকেন প্রত্যাহার সঙ্গে তার আচরণ শুরু 'Stateless "ব্যতীত বৈধ নয়, কালোতালিকাভুক্ত, উত্তর দেওয়ার হামলা প্রতিরোধ ইত্যাদি
svlada

উদ্ধৃত সাইট একই বিষয়ে একটি নতুন নিবন্ধের প্রস্তাব দিয়েছে: auth0.com/blog/cookies-vs-tokens-definitive-guide
আসালাজার

2
আপনি "সেশনগুলির জন্য জেডাব্লুটিটি
Juraj Martinka

1
আসিক, টোকেনটির বৈধতা এবং এটি কখন শেষ হয়ে যাবে? আপনি যদি এই তথ্যগুলি যুক্ত করেন তবে ভাল হবে।
অরুণ প্রকাশ

2
লিঙ্কটি এখন ভেঙে গেছে।
উপবৃত্তাকার দর্শন

95

tokenহ'ল ডেটার টুকরো যা কেবল Server Xসম্ভবত তৈরি করতে পারত এবং এতে কোনও নির্দিষ্ট ব্যবহারকারীকে সনাক্ত করতে পর্যাপ্ত ডেটা থাকে।

আপনি আপনার লগইন তথ্য উপস্থাপন এবং Server Xএকটি জিজ্ঞাসা করতে পারেন token; এবং তারপরে আপনি আপনার উপস্থাপন করতে পারেন tokenএবং Server Xকিছু ব্যবহারকারী-নির্দিষ্ট ক্রিয়া সম্পাদন করতে বলবেন ।

Tokenগুলি ক্রিপ্টোগ্রাফি ক্ষেত্র থেকে বিভিন্ন কৌশল এবং সুরক্ষা গবেষণার বৃহত্তর ক্ষেত্র থেকে ইনপুট সহ বিভিন্ন কৌশল ব্যবহার করে তৈরি করা হয়। আপনি যদি যান এবং নিজের tokenসিস্টেম তৈরি করার সিদ্ধান্ত নেন , আপনি সেরা স্মার্ট হতে পারেন।


4
সাধারণত, আপনি যদি টোকেন-ভিত্তিক প্রমাণীকরণ চান, আপনার OAuth দিয়ে শুরু করা উচিত।
বব আমান

6
OAuth অবশ্যই একটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশনটিতে কার্যকর। তবে, উদাহরণস্বরূপ, অপারেটিং সিস্টেম লগইন সেশনগুলি টোকন সিস্টেমগুলিও ব্যবহার করে, অন্যান্য অনেক ধরণের সফ্টওয়্যার প্রোগ্রাম করে, তাই এই ধারণাটি ওয়েবে সীমাবদ্ধ নয়।
yfeldblum

1
একটি টোকেন সম্ভবত একটি জনসাধারণের গ্রাহক সমর্থন সিস্টেমের জন্যও পছন্দনীয়। সংস্থা ব্যবহারকারীর নাম / পাসওয়ার্ড এবং সমস্যা এবং টোকেন নিয়ন্ত্রণ করে।
কেভিনম্যানেক্স

chrs - তবে এই সিস্টেমটি কীভাবে একটি সেশন ভিত্তিক সিস্টেমের চেয়ে আলাদা?
বিকেএসপুরজন

@ বি কে এসপুরজিওন - টোকেন হ'ল সত্যায়িত সেশনগুলি প্রয়োগ করার একটি সাধারণ উপায়।
yfeldblum

40

একটি টোকেন হ'ল সার্ভারের দ্বারা তৈরি ডেটার টুকরো এবং এতে কোনও নির্দিষ্ট ব্যবহারকারী এবং টোকেনের বৈধতা সনাক্ত করতে তথ্য থাকে। টোকনে ব্যবহারকারীর তথ্য এবং সেইসাথে একটি বিশেষ টোকেন কোড থাকবে যা ব্যবহারকারীর সরাসরি ব্যবহারকারীর নাম এবং পাসওয়ার্ড পাসওয়ার্ড না করে ব্যবহারকারী প্রতিটি পদ্ধতি যা প্রমাণীকরণ সমর্থন করে সার্ভারে পাস করতে পারে।

টোকেন-ভিত্তিক প্রমাণীকরণ হ'ল একটি সুরক্ষা কৌশল যা সার্ভারের সরবরাহকৃত সুরক্ষা টোকেন ব্যবহার করে কোনও সার্ভার, একটি নেটওয়ার্ক বা অন্য কোনও সুরক্ষিত সিস্টেমে লগ ইন করার চেষ্টা করা ব্যবহারকারীদের অনুমোদন দেয়।

কোনও ব্যবহারকারী কোনও সার্ভারে প্রমাণ করতে পারেন যে কোনও সুরক্ষা টোকন পাস করে তিনি বা তিনি বৈধ ব্যবহারকারী। পরিষেবাটি সুরক্ষা টোকেনকে বৈধতা দেয় এবং ব্যবহারকারীর অনুরোধটি প্রক্রিয়া করে।

টোকন পরিষেবাটি যাচাই করার পরে, এটি ক্লায়েন্টের জন্য সুরক্ষা প্রসঙ্গ স্থাপন করতে ব্যবহৃত হয়, যাতে পরিষেবা ক্রমাগত ব্যবহারকারীর অনুরোধের জন্য অনুমোদনের সিদ্ধান্ত নিতে বা নিরীক্ষণের কার্যকলাপ করতে পারে।

উত্স দেখুন


22

টোকেন ভিত্তিক (সুরক্ষা / প্রমাণীকরণ)

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

টোকেন ভিত্তিক সুরক্ষার সুবিধা কী?

যদি আমরা অনিরাপদ এপিআই সম্পর্কে ফিরে চিন্তা করি তবে সে ক্ষেত্রে আমাদের কী করতে হবে তা হ'ল আমরা যা করতে চাই তার জন্য আমাদের পাসওয়ার্ড সরবরাহ করতে হয়েছিল।

কল্পনা করাপ্রতিবার আমরা যখন আমাদের অফিসে একটি দরজা doorুকি, দরজার পাশে বসা প্রত্যেককে আমাদের পাসওয়ার্ড দিতে হবে। এখন এটি বেশ খারাপ হবে, কারণ এর অর্থ হ'ল আমাদের অফিসের অভ্যন্তরের যে কেউই আমাদের পাসওয়ার্ড নিতে এবং আমাদের ছদ্মবেশ তৈরি করতে পারে এবং এটি বেশ খারাপ। পরিবর্তে, আমরা যা করি তা হ'ল আমরা অবশ্যই পাসওয়ার্ডের সাথে টোকেনটি পুনরুদ্ধার করি তবে আমরা এটি একজন ব্যক্তির কাছ থেকে পুনরুদ্ধার করি। এবং তারপরে আমরা বিল্ডিংয়ের ভিতরে যেখানেই চাই এই টোকেনটি ব্যবহার করতে পারি। অবশ্যই যদি আমরা টোকেনটি হারাতে পারি তবে আমাদের একই সমস্যা যেমন অন্য কেউ আমাদের পাসওয়ার্ডটি জানত তবে এটি আমাদের এমন জিনিসগুলির দিকে নিয়ে যায় যা আমরা কীভাবে নিশ্চিত করি যে আমরা যদি টোকেনটি হারাতে পারি তবে আমরা অ্যাক্সেসটি বাতিল করতে পারি, এবং সম্ভবত টোকেন 24 ঘন্টা বেশি বেশি বাঁচতে হবে না, তাই পরের দিন যে আমরা অফিসে আসি, আমাদের আবার আমাদের আইডিটি দেখাতে হবে। কিন্তু তবুও, কেবলমাত্র একজন ব্যক্তি যাকে আমরা আইডি দেখায়,


15

প্রশ্নটি পুরানো এবং প্রযুক্তিটি উন্নত হয়েছে, এখানে বর্তমান অবস্থা রয়েছে:

ওয়েব অ্যাপ্লিকেশন পরিবেশে পক্ষগুলির মধ্যে দাবিগুলি পাস করার জন্য জেএসএন ওয়েব টোকেন (জেডব্লিউটি) একটি জেএসওএন ভিত্তিক উন্মুক্ত মান (আরএফসি 7519)। টোকেনগুলি কমপ্যাক্ট, ইউআরএল-সুরক্ষিত এবং বিশেষত ওয়েব ব্রাউজারের একক সাইন-অন (এসএসও) প্রসঙ্গে নকশাকৃত।

https://en.wikipedia.org/wiki/JSON_Web_Token


1
টোকেন ভিত্তিক প্রমাণীকরণ বাস্তবায়নের জন্য জেডাব্লুটিটি প্রযুক্তির বর্তমান অবস্থার প্রতিনিধিত্ব করে বলে আমি মনে করি না। এটি বাস্তবায়নের একমাত্র উপায় এবং অনেক ত্রুটিগুলি যা cryto.net/~joepie91/blog/2016/06/13/stop-used-jwt-for-sessions
চো

3

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

টোকেন ব্যবহারকারীর সত্যতা নিশ্চিত করতে ব্যবহৃত হয়।


3

ওয়েব API রিসোর্সগুলিকে সুরক্ষিত করার জন্য আজকাল সর্বাধিক পছন্দের পদ্ধতি হ'ল ওয়েব API সার্ভারের ব্যবহারকারীদের স্বাক্ষরিত টোকেন (যা কোনও নির্দিষ্ট ব্যবহারকারীর শনাক্ত করার জন্য পর্যাপ্ত তথ্য রয়েছে) ব্যবহার করে যা প্রত্যেককে এবং তার সাথে ক্লায়েন্ট দ্বারা সার্ভারে প্রেরণ করা প্রয়োজন by প্রতিটি অনুরোধ একে টোকেন-ভিত্তিক প্রমাণীকরণ পদ্ধতি বলে।

টোকন-ভিত্তিক প্রমাণীকরণ নিম্নলিখিত হিসাবে কাজ করে:

কোনও ব্যবহারকারী ক্লায়েন্টে নাম এবং পাসওয়ার্ড প্রবেশ করে (ক্লায়েন্টের অর্থ ব্রাউজার বা মোবাইল ডিভাইস ইত্যাদি)।

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

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

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

নিম্নলিখিত নিবন্ধটি দেখায় যে কীভাবে WEB এপিআই তে টোকেন ভিত্তিক প্রমাণীকরণটি ধাপে ধাপে প্রয়োগ করা যায়।

https://dotnettutorials.net/lesson/token-based-authentication-web-api/


-2

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


11
এককালীন টোকেন / লিঙ্কটি টোকেন ভিত্তিক প্রমাণীকরণের চেয়ে আলাদা ধারণা।
এমিল বার্গারন

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