আমি কীভাবে আমার API কীগুলিকে অনুসন্ধানের ফলাফলে উপস্থিত হওয়া থেকে রক্ষা করব?

আমি কীভাবে আমার API কীগুলিকে অনুসন্ধানের ফলাফলে উপস্থিত হওয়া থেকে রক্ষা করব?

উত্স নোড: 2726143

প্রশ্ন: আমি কীভাবে আমার API কীগুলিকে অন্য কারও গিটহাব অনুসন্ধানের অংশ হতে রাখব?

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

API কীগুলি নিরাপদে সংরক্ষণ করার বিভিন্ন উপায় রয়েছে:

  • পরিবেশ পরিবর্তনশীল: আপনি আপনার মেশিনে পরিবেশ ভেরিয়েবলগুলিতে API কীগুলি সংরক্ষণ করতে পারেন এবং তারপরে আপনার কোড থেকে এই ভেরিয়েবলগুলি অ্যাক্সেস করতে পারেন। এই পদ্ধতিতে কীগুলি আপনার কোডের বাইরে রাখার সুবিধা রয়েছে (সেগুলি সেই পরিবেশে যেখানে কোড চলে)। এর মানে হল আপনার স্থানীয় মেশিন, একটি ডেভেলপমেন্ট সার্ভার, একটি প্রোডাকশন সার্ভার ইত্যাদির মতো বিভিন্ন পরিবেশের জন্য কীগুলি ভিন্ন হতে পারে।
  • কনফিগারেশন ফাইল: আপনি API কীগুলিকে একটি পৃথক কনফিগারেশন ফাইলে সংরক্ষণ করতে পারেন যা আপনার কোড সংগ্রহস্থলে অন্তর্ভুক্ত নয়। এই ফাইল আপনার যোগ করা উচিত .gitignore ফাইলটি আপনার সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ হওয়া থেকে আটকাতে। অননুমোদিত অ্যাক্সেস রোধ করতে এই কনফিগারেশন ফাইলে উপযুক্ত ফাইল-স্তরের অনুমতি যোগ করতে ভুলবেন না। আপনার কোডে, আপনি এই ফাইল থেকে API কীগুলি পড়তে পারেন।
  • গোপন ব্যবস্থাপনা সিস্টেম: বৃহত্তর অ্যাপ্লিকেশন বা আরও সংবেদনশীল ডেটার জন্য, আপনি a ব্যবহার করার কথা বিবেচনা করতে পারেন গোপন ব্যবস্থাপনা সিস্টেম. এগুলি হল AWS সিক্রেটস ম্যানেজার, HashiCorp's Vault এবং Google এর সিক্রেট ম্যানেজারের মতো বিশেষ সরঞ্জাম যা API কীগুলির মতো গোপনীয়তায় অ্যাক্সেস পরিচালনা করতে সহায়তা করে৷
  • পরিবেশ-নির্দিষ্ট কনফিগারেশন পরিষেবা: Heroku এবং Netlify-এর মতো প্ল্যাটফর্মগুলিতে পরিবেশের ভেরিয়েবল সেট করার জন্য নির্দিষ্ট বৈশিষ্ট্য বা পরিষেবা রয়েছে, যা API কী সংরক্ষণ করতে ব্যবহার করা যেতে পারে।
  • এনক্রিপ্ট করা স্টোরেজ: আপনি যদি একটি ডাটাবেস বা অন্য স্টোরেজ সিস্টেমে API কীগুলি সংরক্ষণ করতে চান তবে আপনার সেগুলি এনক্রিপ্ট করা উচিত। এভাবে হলেও কেউ স্টোরেজ সিস্টেমে অ্যাক্সেস লাভ করে, তারা এনক্রিপশন কী ছাড়া কীগুলি ব্যবহার করতে সক্ষম হবে না৷

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

API কী সংরক্ষণের জন্য পরিবেশের ভেরিয়েবল ব্যবহার করতে

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

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

% রপ্তানি API_KEY=

এরপরে, আপনার অ্যাপ্লিকেশনের কোডে পরিবেশ পরিবর্তনশীল অ্যাক্সেস করুন। উদাহরণস্বরূপ, পাইথনে, আপনি ব্যবহার করে একটি পরিবেশ ভেরিয়েবলের মান অ্যাক্সেস করতে পারেন os মডিউল:

% পাইথন আমদানি os api_key = os.environ['API_KEY']

API কী সংরক্ষণের জন্য বাহ্যিক কনফিগারেশন ফাইল ব্যবহার করতে

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

প্রথমত, একটি কনফিগারেশন ফাইল তৈরি করুন, যেমন config.json, এবং এতে API কী সংরক্ষণ করুন:

json { "api_key": " " }

পরবর্তী, আপনার প্রকল্পের কনফিগারেশন ফাইল যোগ করুন .gitignore (বা সমতুল্য) নিশ্চিত করতে এটি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেম দ্বারা ট্র্যাক করা হয়নি।

অবশেষে, API কী অ্যাক্সেস করতে আপনার অ্যাপ্লিকেশনের কোডে কনফিগারেশন ফাইলটি লোড করুন। উদাহরণস্বরূপ, পাইথনে, আপনি একটি JSON কনফিগারেশন ফাইল লোড করতে পারেন এবং API কীটি এভাবে অ্যাক্সেস করতে পারেন:

f হিসাবে open('config.json') সহ json আমদানি করুন
config = load(f) api_key = config['api_key']

আপনার APIs লক আপ

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

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

সময় স্ট্যাম্প:

থেকে আরো অন্ধকার পড়া