CherryPy-তে ওয়েব অ্যাপ্লিকেশন তৈরি করার সময় Authentication ব্যবহার করা হয় যাতে ইউজারদের প্রবেশাধিকার নিয়ন্ত্রণ করা যায়। CherryPy দুই ধরনের অথেনটিকেশন সিস্টেম সমর্থন করে: Basic Authentication এবং Digest Authentication। এই দুটি সিস্টেমই ওয়েব অ্যাপ্লিকেশনে নিরাপত্তা ব্যবস্থার জন্য ব্যবহৃত হয়।
১. Basic Authentication
Basic Authentication একটি সরল অথেনটিকেশন পদ্ধতি যেখানে ইউজারনেম এবং পাসওয়ার্ড HTTP হেডারে পাঠানো হয়। এটি সহজ, তবে নিরাপত্তা জন্য SSL/TLS ব্যবহার করা প্রয়োজন, কারণ ডেটা সরাসরি পাঠানো হয়।
Basic Authentication উদাহরণ
CherryPy তে Basic Authentication ব্যবহার করতে হলে cherrypy.tools.auth_basic টুল ব্যবহার করতে হবে।
উদাহরণ কোড:
import cherrypy
from cherrypy.lib import auth_basic
# ইউজারনেম এবং পাসওয়ার্ড সংরক্ষণের জন্য
def check_password(realm, username, password):
users = {
"admin": "password123",
"guest": "guestpassword"
}
return users.get(username) == password
class MyApp:
@cherrypy.expose
@cherrypy.tools.auth_basic(check_password) # Basic authentication প্রয়োগ
def index(self):
return "স্বাগতম CherryPy অ্যাপে! আপনি সফলভাবে লগইন করেছেন।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
check_passwordফাংশনটি ইউজারনেম এবং পাসওয়ার্ড যাচাই করে। যদি তারা সঠিক হয়, তবে লগইন অনুমোদন করা হয়।@cherrypy.tools.auth_basic(check_password): এই ডেকোরেটর Basic Authentication প্রয়োগ করে।- এই উদাহরণে, ইউজারদের জন্য ইউজারনেম এবং পাসওয়ার্ড তৈরি করা হয়েছে, যা শুধুমাত্র ইউজারনেম এবং পাসওয়ার্ড মিলিয়ে যাচাই করবে।
২. Digest Authentication
Digest Authentication একটি বেশি নিরাপদ অথেনটিকেশন পদ্ধতি, যেখানে ইউজারনেম এবং পাসওয়ার্ডের পরিবর্তে একটি হ্যাশ পাঠানো হয়। এটি Basic Authentication থেকে নিরাপদ, কারণ পাসওয়ার্ড কখনো সরাসরি পাঠানো হয় না। তবে এটি SSL/TLS সমর্থন করতে পারে।
Digest Authentication উদাহরণ
CherryPy তে Digest Authentication ব্যবহার করতে হলে cherrypy.lib.auth_digest টুল ব্যবহার করতে হয়।
উদাহরণ কোড:
import cherrypy
from cherrypy.lib import auth_digest
# ইউজারনেম এবং পাসওয়ার্ড সংরক্ষণের জন্য
def check_password(realm, username, password):
users = {
"admin": "password123",
"guest": "guestpassword"
}
return users.get(username) == password
class MyApp:
@cherrypy.expose
@cherrypy.tools.auth_digest(check_password) # Digest authentication প্রয়োগ
def index(self):
return "স্বাগতম CherryPy অ্যাপে! আপনি সফলভাবে লগইন করেছেন।"
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
কোড ব্যাখ্যা:
check_password: ইউজারনেম এবং পাসওয়ার্ড যাচাই করার জন্য ব্যবহার করা হয়।@cherrypy.tools.auth_digest(check_password): Digest Authentication প্রয়োগ করার জন্য ব্যবহার করা হয়।- Digest Authentication এ, ইউজারনেম এবং পাসওয়ার্ডের হ্যাশ পাঠানো হয়, যা সার্ভার যাচাই করে।
Basic এবং Digest Authentication এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Basic Authentication | Digest Authentication |
|---|---|---|
| নিরাপত্তা | কম (পাসওয়ার্ড সরাসরি পাঠানো হয়) | বেশি (পাসওয়ার্ড হ্যাশ পাঠানো হয়) |
| পদ্ধতি | HTTP হেডারে ইউজারনেম এবং পাসওয়ার্ড পাঠানো | পাসওয়ার্ডের হ্যাশ পাঠানো |
| SSL/TLS প্রয়োজন | হ্যাঁ, নিরাপত্তার জন্য SSL/TLS প্রয়োজন | না, তবে SSL/TLS আরও নিরাপদ |
CherryPy এর সাথে Basic ও Digest Authentication ব্যবহারের সুবিধা
- সহজ বাস্তবায়ন: CherryPy-তে এই অথেনটিকেশনগুলো সহজে প্রয়োগ করা যায়।
- নিরাপত্তা বৃদ্ধি: Digest Authentication এর মাধ্যমে আপনি পাসওয়ার্ডের হ্যাশ পাঠিয়ে আরও নিরাপত্তা প্রদান করতে পারেন।
- ব্যবহারকারী পরিচালনা: Basic এবং Digest Authentication উভয়ই দ্রুত ইউজার অ্যাক্সেস ম্যানেজমেন্ট সক্ষম করে।
CherryPy তে Basic এবং Digest Authentication নিরাপদে এবং সহজভাবে ব্যবহারকারীদের প্রমাণীকরণের জন্য ব্যবহার করা যেতে পারে। আপনি যে কোনো একটি ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশন নিরাপদ করতে পারেন। তবে Digest Authentication তুলনামূলকভাবে আরও নিরাপদ, কারণ এতে পাসওয়ার্ড সরাসরি পাঠানো হয় না, হ্যাশ পাঠানো হয়।
Read more