ওয়েব এপিআই সুরক্ষিত করার জন্য সেরা অনুশীলনগুলি কী কী?


15

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

অন্য কোথাও যে কল করা হয়েছে তা নিশ্চিত করার জন্য কী কী পদ্ধতি রয়েছে (উদাহরণস্বরূপ কেউ আমাদের সমস্ত ডেটা চান, বা একটি বেসরকারী অ্যাপ্লিকেশন তৈরি করছেন) তা প্রত্যাখ্যানিত?

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

এটি বাস্তবায়ন করা বেশ সহজ বলে মনে হচ্ছে এবং যদিও এটি 100% প্রমাণ নয়, এটি একটি ভাল ধারণা বলে মনে হয়। আপনি কি মনে করেন?

উত্তর:


15

আপনি অ্যাপ্লিকেশনটি প্রকাশের সাথে সাথেই এটি বিপরীত প্রকৌশলী হতে পারে। এর অর্থ হ'ল যদি একই অ্যাপ্লিকেশন (একই বাইনারি, একই সেটিংস) আপনার সমস্ত ব্যবহারকারীকে বিতরণ করা হয় তবে আপনার 100% সুরক্ষিত হওয়ার মতো কিছুই করার নেই।

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

নিম্নলিখিত স্কিমা কল্পনা করুন:

  1. ক্লায়েন্ট তার অনন্য সনাক্তকারীকে সংযুক্ত করে এবং প্রেরণ করে (ব্যবহারকারী দ্বারা একটি শনাক্তকারী)।
  2. সার্ভার একটি সর্বজনীন কী সহ এনক্রিপ্ট করা একটি চ্যালেঞ্জ পাঠিয়ে জবাব দেয়। এই সর্বজনীন কীটি আগে প্রেরিত অনন্য শনাক্তকারীর সাথে সম্পর্কিত।
  3. ক্লায়েন্ট একটি প্রাইভেট কী ব্যবহার করে ডেটা ডিক্রিপ্ট করে চ্যালেঞ্জটি সমাধান করে এবং ডিক্রিপ্ট করা গোপনটি সরল জায়গায় ফিরে পাঠায়।
  4. সার্ভারটি যাচাই করেছে যে জমা দেওয়া গোপনটি মূলত উত্পন্ন উত্পন্ন ব্যক্তির সাথে সম্পর্কিত s

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

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

যদিও এটি সহায়তা করে, এটি 100% প্রমাণও নয়। যদি হ্যাকার তার নিজের অ্যাপটি ডিভাইসে ইনস্টল করা থাকে তখন আপনার অ্যাপ থেকে প্রাইভেট কীটি বের করার কোনও উপায় খুঁজে পান?


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

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

  • একটি এপিআই তৈরি করা যাতে এটি কেবল আপনার অ্যাপ্লিকেশনগুলির দ্বারা ব্যবহৃত হয় তা কঠিন এবং ব্যয়বহুল। এই সময় এবং অর্থ আরও কিছু দরকারী জন্য ব্যবহার করা যেতে পারে।

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

  • অন্যান্য লোকেরা কীভাবে আপনার এপিআই ব্যবহার করতে পারে তা আপনি কখনই ভাবেননি। কিনেক্টের সাথে এটাই হয়েছিল। মূলত, মাইক্রোসফ্ট গেমসের জন্য কিনেক্ট তৈরি করেছে। মাইক্রোসফ্ট যখন জনসাধারণের জন্য এপিআই খুললেন, তারা কখনও কল্পনাও করেন নি যে এটি কয়েক বছর পরে বৈজ্ঞানিক অ্যাপ্লিকেশন, স্বাস্থ্য খাত ইত্যাদি দ্বারা ব্যবহৃত হবে এটি ওয়েব এপিআইয়ের জন্য অনুরূপ: আরও বিকাশকারীরা এটি ব্যবহার করছেন, ধারণাগুলি আরও ব্যাপক হবে।


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

2
@ এন্টাইন: লাইসেন্স নিষিদ্ধ হওয়ার সাথে সাথে রেভার ইঞ্জিনিয়ারিং যে কোনও দেশে অবৈধ হবে। তবে এটি যে অবৈধ তা হ'ল এর অর্থ এই নয় যে আপনার অ্যাপ্লিকেশনটি কেউই শ্রদ্ধা করবে না।
আর্সেনি মরজেনকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.