স্যান্ডবক্সড এপিআই কী?, স্যান্ডবক্সড এপিআই কী?

ওপেন-সোর্স স্যান্ডবক্সড এপিআই ( SAPI ) প্রোজেক্টটি Google-এর স্যান্ডবক্স2 ওপেন-সোর্স প্রোজেক্টের উপরে তৈরি করে এবং C/C++ লাইব্রেরির স্যান্ডবক্সিংকে কম বোঝার লক্ষ্য করে।

স্যান্ডবক্সড API তিনটি প্রধান সুবিধা প্রদান করে:

  • স্যান্ডবক্স২ এর মতো প্রোগ্রামের একটি অংশ স্যান্ডবক্স করতে সক্ষম হওয়ার জন্য সম্পূর্ণ প্রোগ্রাম স্যান্ডবক্সিং বা সোর্স কোড পরিবর্তন করার পরিবর্তে, SAPI-এর সাহায্যে আপনি পৃথক C/C++ লাইব্রেরি স্যান্ডবক্স করতে পারেন। ফলস্বরূপ, SAPI-এর সাথে মূল প্রোগ্রামটি C/C++ লাইব্রেরিতে কোড এক্সিকিউশন দুর্বলতা থেকে বিচ্ছিন্ন।

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

  • প্রতিটি SAPI লাইব্রেরি একটি দৃঢ়ভাবে সংজ্ঞায়িত নিরাপত্তা নীতি ব্যবহার করে, সাধারণ স্যান্ডবক্সড প্রকল্পের বিপরীতে, যেখানে নিরাপত্তা নীতিগুলি সমস্ত ব্যবহৃত লাইব্রেরির মোট syscall/রিসোর্স ফুটপ্রিন্টকে কভার করতে হবে।

SAPI প্রকল্পটি ডিজাইন করা হয়েছে, বিকাশ করা হয়েছে এবং Google স্যান্ডবক্স টিমের সদস্যদের দ্বারা রক্ষণাবেক্ষণ করা হয়েছে৷ এটি আমাদের ক্ষেত্র-পরীক্ষিত স্যান্ডবক্স2 ব্যবহার করে। বর্তমানে, অনেক অভ্যন্তরীণ প্রকল্প তাদের উৎপাদন কাজের চাপকে আলাদা করতে SAPI ব্যবহার করছে।

দ্রুত শুরু

স্যান্ডবক্সড এপিআইয়ের সাথে উঠতে এবং চালানোর জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. প্রয়োজনীয় নির্ভরতাগুলি ইনস্টল করুন (এটি ধরে নেওয়া হচ্ছে আপনি ডেবিয়ান 10 বাস্টার চালাচ্ছেন):
    $ echo "deb http://storage.googleapis.com/bazel-apt stable jdk1.8" | 
    sudo tee /etc/apt/sources.list.d/bazel.list $ wget -qO - https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install -qy build-essential linux-libc-dev bazel python3
    python3-pip libclang-7-dev $ pip3 install clang
  2. ক্লোন করুন এবং বিল্ডটি চালান:
    $ git clone https://github.com/google/sandboxed-api && cd sandboxed-api
    $ bazel build …
    
  3. উদাহরণগুলির মধ্যে একটি ব্যবহার করে দেখুন:
    $ bazel run //sandboxed_api/examples/stringop:main_stringop
    

উপলব্ধ ডকুমেন্টেশন

স্যান্ডবক্সড API সম্পর্কে আরও তথ্য এখানে উপলব্ধ:

  • স্যান্ডবক্সড এপিআই ব্যাখ্যা করা হয়েছে — স্যান্ডবক্সড এপিআই (SAPI) এবং এর মূল ধারণাগুলি বর্ণনা করে।

  • শুরু করা — আপনাকে একটি API-এর নিজস্ব SAPI স্যান্ডবক্সযুক্ত সংস্করণ তৈরি করতে সহায়তা করে নির্দেশিকা প্রদান করে।

  • বিল্ড রুলস — আপনার SAPI লাইব্রেরি তৈরি করতে sapi_library() বিল্ড নিয়ম কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে।

  • ভেরিয়েবল — SAPI প্রকারের ব্যবহার নিয়ে আলোচনা করে যা সাধারণ প্রকার এবং মেমরি ব্লকগুলিতে পয়েন্টার দেওয়ার সময় প্রয়োজন।

  • লেনদেন — ফাংশন কল নিরীক্ষণ করতে SAPI লেনদেন মডিউল কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে।

শব্দকোষ

স্যান্ডবক্স2 Google ওপেন-সোর্স প্রকল্প যা SAPI-তে স্যান্ডবক্সিং স্তর প্রদান করে।
স্যান্ডবক্সী স্যান্ডবক্স 2 স্যান্ডবক্সে বাইনারি কার্যকর হচ্ছে, স্যান্ডবক্স2 ডকুমেন্টেশন দেখুন। SAPI এর প্রসঙ্গে, এটি স্যান্ডবক্সযুক্ত C/C++ লাইব্রেরি।
এসএপিআই স্যান্ডবক্সড এপিআই, গুগল ওপেন সোর্স প্রকল্প যা স্যান্ডবক্সড লাইব্রেরি তৈরির কার্যকারিতা প্রদান করে।
SAPI লাইব্রেরি স্যান্ডবক্সড লাইব্রেরি, স্যান্ডবক্স২ কোড এবং SAPI রানটাইম কোড সহ SAPI দ্বারা তৈরি করা লাইব্রেরি।
SAPI অবজেক্ট হোস্ট কোডে অন্তর্ভুক্ত C++ অবজেক্ট, মূলের পরিবর্তে SAPI প্রকার ব্যবহার করে স্যান্ডবক্সড লাইব্রেরিতে একটি ইন্টারফেস প্রদান করে।
SAPI প্রকার SAPI সাধারণ প্রকার এবং মেমরি ব্লকগুলিতে পয়েন্টার দেওয়ার সময় প্রয়োজনীয় বিশেষ ধরনের সরবরাহ করে।
SAPI লেনদেন রানের মধ্যে স্যান্ডবক্সড লাইব্রেরির স্যান্ডবক্স স্ট্যাটাস পরিচালনা করতে ব্যবহৃত একটি মডিউল।
RPC স্টাব রিমোট প্রসিডিউর কল (RPC) কমিউনিকেশন স্টাব স্যান্ডবক্স2 এ মোড়ানো এবং SAPI অবজেক্ট এবং স্যান্ডবক্সড লাইব্রেরির মধ্যে ডেটা পাস করতে ব্যবহৃত হয়।
হোস্ট কোড কোড যা স্যান্ডবক্সড লাইব্রেরি ব্যবহার করে এবং SAPI অবজেক্ট অন্তর্ভুক্ত করে।

স্যান্ডবক্সড এপিআই-এ অবদান

আপনি যদি অবদান রাখতে চান, অনুগ্রহ করে CONTRIBUTING.md পড়ুন এবং আমাদের পুল অনুরোধ পাঠান। এছাড়াও আপনি বাগ রিপোর্ট করতে পারেন বা বৈশিষ্ট্য অনুরোধ ফাইল করতে পারেন।

আপনি যদি ডেভেলপারদের সাথে কথা বলতে চান বা প্রধান পণ্য আপডেট সম্পর্কে বিজ্ঞপ্তি পেতে চান তবে আপনি আমাদের Google গ্রুপে যোগ দিতে চাইতে পারেন: sandboxed-api-users

,

ওপেন-সোর্স স্যান্ডবক্সড এপিআই ( SAPI ) প্রোজেক্টটি Google-এর স্যান্ডবক্স2 ওপেন-সোর্স প্রোজেক্টের উপরে তৈরি করে এবং C/C++ লাইব্রেরির স্যান্ডবক্সিংকে কম বোঝার লক্ষ্য করে।

স্যান্ডবক্সড API তিনটি প্রধান সুবিধা প্রদান করে:

  • স্যান্ডবক্স২ এর মতো প্রোগ্রামের একটি অংশ স্যান্ডবক্স করতে সক্ষম হওয়ার জন্য সম্পূর্ণ প্রোগ্রাম স্যান্ডবক্সিং বা সোর্স কোড পরিবর্তন করার পরিবর্তে, SAPI-এর সাহায্যে আপনি পৃথক C/C++ লাইব্রেরি স্যান্ডবক্স করতে পারেন। ফলস্বরূপ, SAPI-এর সাথে মূল প্রোগ্রামটি C/C++ লাইব্রেরিতে কোড এক্সিকিউশন দুর্বলতা থেকে বিচ্ছিন্ন।

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

  • প্রতিটি SAPI লাইব্রেরি একটি দৃঢ়ভাবে সংজ্ঞায়িত নিরাপত্তা নীতি ব্যবহার করে, সাধারণ স্যান্ডবক্সড প্রকল্পের বিপরীতে, যেখানে নিরাপত্তা নীতিগুলি সমস্ত ব্যবহৃত লাইব্রেরির মোট syscall/রিসোর্স ফুটপ্রিন্টকে কভার করতে হবে।

SAPI প্রকল্পটি ডিজাইন করা হয়েছে, বিকাশ করা হয়েছে এবং Google স্যান্ডবক্স টিমের সদস্যদের দ্বারা রক্ষণাবেক্ষণ করা হয়েছে৷ এটি আমাদের ক্ষেত্র-পরীক্ষিত স্যান্ডবক্স2 ব্যবহার করে। বর্তমানে, অনেক অভ্যন্তরীণ প্রকল্প তাদের উৎপাদন কাজের চাপকে আলাদা করতে SAPI ব্যবহার করছে।

দ্রুত শুরু

স্যান্ডবক্সড এপিআইয়ের সাথে উঠতে এবং চালানোর জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. প্রয়োজনীয় নির্ভরতাগুলি ইনস্টল করুন (এটি ধরে নেওয়া হচ্ছে আপনি ডেবিয়ান 10 বাস্টার চালাচ্ছেন):
    $ echo "deb http://storage.googleapis.com/bazel-apt stable jdk1.8" | 
    sudo tee /etc/apt/sources.list.d/bazel.list $ wget -qO - https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install -qy build-essential linux-libc-dev bazel python3
    python3-pip libclang-7-dev $ pip3 install clang
  2. ক্লোন করুন এবং বিল্ডটি চালান:
    $ git clone https://github.com/google/sandboxed-api && cd sandboxed-api
    $ bazel build …
    
  3. উদাহরণগুলির মধ্যে একটি ব্যবহার করে দেখুন:
    $ bazel run //sandboxed_api/examples/stringop:main_stringop
    

উপলব্ধ ডকুমেন্টেশন

স্যান্ডবক্সড API সম্পর্কে আরও তথ্য এখানে উপলব্ধ:

  • স্যান্ডবক্সড এপিআই ব্যাখ্যা করা হয়েছে — স্যান্ডবক্সড এপিআই (SAPI) এবং এর মূল ধারণাগুলি বর্ণনা করে।

  • শুরু করা — আপনাকে একটি API-এর নিজস্ব SAPI স্যান্ডবক্সযুক্ত সংস্করণ তৈরি করতে সহায়তা করে নির্দেশিকা প্রদান করে।

  • বিল্ড রুলস — আপনার SAPI লাইব্রেরি তৈরি করতে sapi_library() বিল্ড নিয়ম কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে।

  • ভেরিয়েবল — SAPI প্রকারের ব্যবহার নিয়ে আলোচনা করে যা সাধারণ প্রকার এবং মেমরি ব্লকগুলিতে পয়েন্টার দেওয়ার সময় প্রয়োজন।

  • লেনদেন — ফাংশন কল নিরীক্ষণ করতে SAPI লেনদেন মডিউল কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে।

শব্দকোষ

স্যান্ডবক্স2 Google ওপেন-সোর্স প্রকল্প যা SAPI-তে স্যান্ডবক্সিং স্তর প্রদান করে।
স্যান্ডবক্সী স্যান্ডবক্স 2 স্যান্ডবক্সে বাইনারি কার্যকর হচ্ছে, স্যান্ডবক্স2 ডকুমেন্টেশন দেখুন। SAPI এর প্রসঙ্গে, এটি স্যান্ডবক্সযুক্ত C/C++ লাইব্রেরি।
এসএপিআই স্যান্ডবক্সড এপিআই, গুগল ওপেন সোর্স প্রকল্প যা স্যান্ডবক্সড লাইব্রেরি তৈরির কার্যকারিতা প্রদান করে।
SAPI লাইব্রেরি স্যান্ডবক্সড লাইব্রেরি, স্যান্ডবক্স২ কোড এবং SAPI রানটাইম কোড সহ SAPI দ্বারা তৈরি করা লাইব্রেরি।
SAPI অবজেক্ট হোস্ট কোডে অন্তর্ভুক্ত C++ অবজেক্ট, মূলের পরিবর্তে SAPI প্রকার ব্যবহার করে স্যান্ডবক্সড লাইব্রেরিতে একটি ইন্টারফেস প্রদান করে।
SAPI প্রকার SAPI সাধারণ প্রকার এবং মেমরি ব্লকগুলিতে পয়েন্টার দেওয়ার সময় প্রয়োজনীয় বিশেষ ধরনের সরবরাহ করে।
SAPI লেনদেন রানের মধ্যে স্যান্ডবক্সড লাইব্রেরির স্যান্ডবক্স স্ট্যাটাস পরিচালনা করতে ব্যবহৃত একটি মডিউল।
আরপিসি স্টাব রিমোট প্রসিডিউর কল (RPC) কমিউনিকেশন স্টাব স্যান্ডবক্স2 এ মোড়ানো এবং SAPI অবজেক্ট এবং স্যান্ডবক্সড লাইব্রেরির মধ্যে ডেটা পাস করতে ব্যবহৃত হয়।
হোস্ট কোড কোড যা স্যান্ডবক্সড লাইব্রেরি ব্যবহার করে এবং SAPI অবজেক্ট অন্তর্ভুক্ত করে।

স্যান্ডবক্সড এপিআই-এ অবদান

আপনি যদি অবদান রাখতে চান, অনুগ্রহ করে CONTRIBUTING.md পড়ুন এবং আমাদের পুল অনুরোধ পাঠান। এছাড়াও আপনি বাগ রিপোর্ট করতে পারেন বা বৈশিষ্ট্য অনুরোধ ফাইল করতে পারেন।

আপনি যদি ডেভেলপারদের সাথে কথা বলতে চান বা প্রধান পণ্য আপডেট সম্পর্কে বিজ্ঞপ্তি পেতে চান তবে আপনি আমাদের Google গ্রুপে যোগ দিতে চাইতে পারেন: sandboxed-api-users