Skip to main content

Command Palette

Search for a command to run...

How to Design Secure Web API Access

Updated
3 min read

ইন্টারনেটে যখন আমরা কোনো এপিআই (API) ব্যবহার করি, তখন সবচেয়ে বড় চিন্তার বিষয় থাকে সিকিউরিটি। অর্থাৎ, যে ব্যক্তি এপিআইটি কল করছে, সে আসলে সঠিক ব্যক্তি কি না? এটি নিশ্চিত করার জন্য প্রধানত দুটি জনপ্রিয় পদ্ধতি ব্যবহার করা হয়: Token Based Authentication এবং HMAC Authentication

সহজ ভাষায় এই দুটি পদ্ধতির কাজ করার ধরণ নিচে আলোচনা করা হলো:

১. টোকেন ভিত্তিক অথেন্টিকেশন (Token Based Authentication)

এটি বর্তমানে সবচেয়ে বেশি ব্যবহৃত পদ্ধতি। সহজ কথায় এটি অনেকটা কোনো কনসার্টে প্রবেশের জন্য 'রিস্টব্যান্ড' পাওয়ার মতো।

কিভাবে কাজ করে?

  • লগইন: প্রথমে ইউজার তার ইউজারনেম এবং পাসওয়ার্ড দিয়ে সার্ভারে লগইন করার চেষ্টা করে।

  • টোকেন প্রাপ্তি: যদি পাসওয়ার্ড ঠিক থাকে, তবে অথেন্টিকেশন সার্ভার ইউজারকে একটি গোপন 'টোকেন' (যেমন: JWT) পাঠায়। এই টোকেনের একটি নির্দিষ্ট মেয়াদ (Expiry Time) থাকে।

  • এপিআই কল: এরপর থেকে ইউজার যতবার সার্ভারের কাছে কোনো তথ্য চাইবে, তাকে আর বারবার পাসওয়ার্ড দিতে হবে না। সে শুধু ওই টোকেনটি রিকোয়েস্টের সাথে পাঠিয়ে দেবে।

  • এক্সেস: সার্ভার টোকেনটি চেক করে দেখে এবং সঠিক হলে ইউজারকে তথ্য দেয়।

সুবিধা: এটি ব্যবহার করা সহজ এবং বারবার সার্ভারে পাসওয়ার্ড পাঠানোর ঝুঁকি থাকে না।


২. HMAC অথেন্টিকেশন (Hash-based Message Authentication Code)

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

কিভাবে কাজ করে?

  • কি (Key) সংগ্রহ: ইউজারকে শুরুতেই একটি Public App ID এবং একটি গোপন API Key (Private Key) দেওয়া হয়। এই প্রাইভেট কি-টি কখনো ইন্টারনেটে শেয়ার করা হয় না।

  • সিগনেচার তৈরি (Client Side): রিকোয়েস্ট পাঠানোর সময় ক্লায়েন্ট সাইডে একটি এলগরিদম ব্যবহার করা হয়। যেখানে রিকোয়েস্টের তথ্য (যেমন: ইউআরএল, সময়, কন্টেন্ট) এবং ওই গোপন 'এপিআই কি' মিলিয়ে একটি ডিজিটাল স্বাক্ষর বা HMAC Signature (hmac A) তৈরি করা হয়।

  • রিকোয়েস্ট পাঠানো: ক্লায়েন্ট এবার রিকোয়েস্টের সাথে ওই সিগনেচারটি সার্ভারে পাঠিয়ে দেয়।

  • সার্ভার সাইড ভেরিফিকেশন: সার্ভার যখন রিকোয়েস্টটি পায়, সে নিজেও একই তথ্য এবং নিজের কাছে থাকা গোপন 'এপিআই কি' দিয়ে নতুন করে একটি সিগনেচার (hmac B) তৈরি করে।

  • মিলিয়ে দেখা: যদি ক্লায়েন্টের পাঠানো সিগনেচার (hmac A) এবং সার্ভারের তৈরি করা সিগনেচার (hmac B) হুবহু মিলে যায়, কেবল তখনই সার্ভার তথ্য প্রদান করে।

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

সংক্ষেপে পার্থক্য:

বিষয়

টোকেন অথেন্টিকেশন

HMAC অথেন্টিকেশন

ইমপ্লিমেন্টেশন

খুব সহজ

কিছুটা জটিল

ব্যবহার

সাধারণ অ্যাপ বা ওয়েবসাইট লগইনে

হাই-সিকিউরিটি বা পেমেন্ট এপিআই-তে

নিরাপত্তা

ভালো (তবে টোকেন চুরি হলে রিস্ক থাকে)

অত্যন্ত শক্তিশালী (প্রতিটি রিকোয়েস্ট ভেরিফাই হয়)

আপনি যদি সাধারণ কোনো ইউজার অ্যাপ তৈরি করেন যেখানে সহজ লগইন প্রয়োজন, তবে Token based পদ্ধতিই সেরা। কিন্তু যদি এমন কোনো এপিআই বানান যেখানে নিরাপত্তার গুরুত্ব অনেক বেশি (যেমন: ব্যাংকিং বা গেটওয়ে), তবে HMAC ব্যবহার করা বুদ্ধিমানের কাজ।

More from this blog

Proxy vs Reverse Proxy

ইন্টারনেট দুনিয়ায় 'প্রক্সি' কথাটির মানে হলো 'কারো হয়ে কাজ করে দেওয়া'। নেটওয়ার্কিং-এর ক্ষেত্রে প্রক্সি সার্ভার হলো এমন একটি মাধ্যম যা ক্লায়েন্ট (ব্যবহারকারী) এবং সার্ভার (ওয়েবসাইট)-এর মাঝে দাঁড়

Apr 10, 20263 min read

যখন আপনি ব্রাউজারে একটি URL টাইপ করেন তখন কী ঘটে? | What Happens When You Type a URL Into Your Browser? (Simple Explanation)

ধাপ ১: বব URL টাইপ করে বব তার ব্রাউজারে টাইপ করে: http://example.com/product/electric/phone এখানে: http:// = স্কিম (কীভাবে সংযোগ করতে হবে বলে) example.com = ডোমেইন নাম (ওয়েবসাইটের ঠিকানা) product/

Apr 10, 20261 min read

Untitled Publication

12 posts

How to Design Secure Web API Access