স্ক্যানমাইকোড-সিই – কোড স্ক্যানিং/এসএএসটি/স্ট্যাটিক অ্যানালাইসিস/লিন্টিং একটি রিপোর্ট সহ অনেক টুলস/স্ক্যানার ব্যবহার করে – স্ক্যানমাইকোড কমিউনিটি সংস্করণ (সিই)

0 comment 128 views

এটি একটি কোড স্ক্যানিং/SAST/স্ট্যাটিক অ্যানালাইসিস/লিন্টিং সলিউশন যা একটি রিপোর্ট সহ অনেক টুলস/স্ক্যানার ব্যবহার করে। আপনি এটিতে যে কোনও সরঞ্জাম যুক্ত করতে পারেন। বর্তমানে, এটি অনেক ভাষা এবং প্রযুক্তি স্ট্যাক সমর্থন করে। SonarQube এর অনুরূপ, কিন্তু এটি ভিন্ন।

চিত্র 1 স্ক্যানমাইকোড ধারণা চিত্র

স্ক্যানমাইকোড কীভাবে সোনারকিউবের থেকে আলাদা?

আপনি যদি এটি পছন্দ করেন, দয়া করে এটিকে একটি GitHub তারকা/ফর্ক/অবদান দিন। এটি ধারাবাহিক উন্নয়ন নিশ্চিত করবে

আপনি যদি এই প্রকল্পটিকে সমর্থন করতে চান তবে আমাদের গিথুব স্পনসর পৃষ্ঠা বা প্যাট্রিয়নে যান (ভাল ভ্যাট পরিচালনার কারণে পছন্দ)

TLDR;

এটি ইনস্টল করতে। ইনস্টল করুন dockerএবং docker-composeতারপর:

2টি বিকল্প

  1. দ্রুততম (ডকারহাব নির্মিত ছবি ব্যবহার করুন)। যদি অনিশ্চিত, এটি ব্যবহার করুন.
git clone [email protected]:marcinguy/scanmycode-ce.git
cd scanmycode-ce/dockerhub
./start.sh
  1. ধীর (সবকিছু তৈরি করুন)
git clone [email protected]:marcinguy/scanmycode-ce.git
cd scanmycode-ce/docker
./start.sh

এতে ব্রাউজারে যান:

http://localhost:5000

স্থানীয়ভাবে সাইন আপ করুন (এবং প্রয়োজনে লগ ইন করুন)

উইকিতে আরও তথ্য:

https://github.com/marcinguy/scanmycode-ce/wiki

ফণা অধীনে

Progpilot, PMD, Bandit, Brakeman, Gosec, confused, semgrep, trufflehog3, jshint, log4shell কাস্টম semgrep নিয়ম এবং অন্যান্য(গুলি) মাধ্যমে। কিছু সংশোধন করা হয়েছে.

ডেমো রেকর্ড করা হয়েছে

কমিউনিটি সংস্করণে গিটহাব সমর্থন এবং অন্যান্য প্লাগইন নেই। কিন্তু বিশ্রাম একই।

স্ক্যানমাইকোড কীভাবে সোনারকিউবের থেকে আলাদা?

উভয়ই বাগ এবং ত্রুটিগুলি খুঁজে পেতে স্ট্যাটিক বিশ্লেষণ ব্যবহার করে, তবে কয়েকটি পার্থক্য রয়েছে।

  • JSON আউটপুট (যেকোন বাইনারি, যেকোনো প্রযুক্তি/ভাষা/পণ্যে) উৎপাদনকারী যেকোনো টুল দিয়ে Scanmycode বাড়ানো যেতে পারে। এটাই সবচেয়ে বড় পার্থক্য।
  • স্ক্যানমাইকোড হল ওপেন সোর্স, সোনারকিউব একটি ওপেন-সোর্স সংস্করণও অফার করে, কিন্তু এতে বৈশিষ্ট্যগুলি অনুপস্থিত (উদাহরণস্বরূপ, সমর্থিত ভাষাগুলির মধ্যে 12টি ওপেন-সোর্স অফারে উপলব্ধ নয়, এবং আরও শক্তিশালী ডেটাফ্লো বৈশিষ্ট্যগুলি শুধুমাত্র অর্থপ্রদত্ত সংস্করণগুলিতে উপলব্ধ। )
  • স্ক্যানমাইকোড শুধুমাত্র পরিবর্তিত ফাইল (ডিফারেনশিয়াল অ্যানালাইসিস) স্ক্যান করা সমর্থন করে, সোনারকিউব করে না
  • স্ক্যানমাইকোড সেমগ্রেপকেও একটি টুল হিসেবে ব্যবহার করে (সেমগ্রেপ সম্প্রদায়ের নিয়ম ব্যতীত, শুধুমাত্র স্ক্যানমাইকোডের কাস্টম নিয়ম)

নীচে semgrep এর (সোনারকিউবের উপর স্ক্যানমাইকোড সুবিধাগুলিও রয়েছে):

“কাস্টম নিয়মের সাথে Semgrep প্রসারিত করা সহজ, যেহেতু Semgrep নিয়মগুলি আপনার লেখার সোর্স কোডের মতো দেখাচ্ছে। সোনারকিউবের সাথে কাস্টম নিয়মগুলি লেখার জন্য কয়েকটি ভাষার মধ্যে সীমাবদ্ধ এবং জাভা এবং বিমূর্ত সিনট্যাক্স ট্রি (ASTs) এর সাথে পরিচিতি প্রয়োজন।”

“সেমগ্রেপ গতি এবং সহজে-ব্যবহারের উপর দৃষ্টি নিবদ্ধ করে, প্রতি নিয়মে 20K-100K loc/sec পর্যন্ত বিশ্লেষণ করা সম্ভব করে৷ SonarQube লেখকরা উৎপাদনে নিয়মের জন্য প্রায় 0.4K loc/sec রিপোর্ট করেছেন৷”

সূত্র: semgrep এর ওয়েবসাইট

বাস্তব প্রকল্প স্ক্যান থেকে এমনকি আরো স্ক্রিনশট

     

Scanmycode CE (কমিউনিটি সংস্করণ) তে স্বাগতম!

Scanmycode QuantifedCode এর উপর ভিত্তি করে। QuantifiedCode হল একটি কোড বিশ্লেষণ এবং অটোমেশন প্ল্যাটফর্ম। এটি আপনাকে আপনার সফ্টওয়্যার প্রকল্পগুলিতে সমস্যা এবং মেট্রিক্সের ট্র্যাক রাখতে সাহায্য করে এবং নতুন ধরণের বিশ্লেষণ সমর্থন করার জন্য সহজেই প্রসারিত করা যেতে পারে। অ্যাপ্লিকেশনটি বেশ কয়েকটি অংশ নিয়ে গঠিত:

  • একটি ফ্রন্টএন্ড, একটি React.js অ্যাপ হিসাবে উপলব্ধি করা হয়েছে৷
  • একটি ব্যাকএন্ড, একটি ফ্লাস্ক অ্যাপ হিসাবে উপলব্ধি করা হয়েছে, যা ফ্রন্টএন্ড দ্বারা গ্রাস করা একটি REST API প্রকাশ করে
  • সেলারি ব্যবহার করে উপলব্ধি করা একজন ব্যাকগ্রাউন্ড কর্মী, যে কোড বিশ্লেষণ করে

বর্তমানে সমর্থন করে: PHP, Java, Scala, Python, Ruby, Javascript, GO, সিক্রেট স্ক্যানিং, ডিপেনডেন্সি কনফিউশন, ট্রোজান সোর্স, ওপেন সোর্স এবং প্রোপ্রাইটারি চেক (মোট প্রায় 1000 চেক)

সুবিধাদি:

  • অনেক টুল, একটি রিপোর্ট (একীকরণ)
  • বরখাস্ত করুন, অনুসন্ধানে সহযোগিতা করুন। মিথ্যা-ইতিবাচক চিহ্নিত করুন
  • চেকারে প্রতিটি পৃথক চেক সক্ষম/অক্ষম করুন
  • ca এখন 1000 চেক (লিন্টার, স্ট্যাটিক কোড বিশ্লেষণ/কোড স্ক্যানিং)
  • JSON আউটপুট করার কোনো টুল যোগ করা যেতে পারে
  • দ্রুত (পুনঃচেকে শুধুমাত্র নতুন কোড পরীক্ষা করে)
  • গিট সমর্থন (HTTPS/TLS এবং SSH)। ব্যক্তিগত সংগ্রহস্থলের জন্য শুধুমাত্র SSH.
  • সমস্ত REST API কলযোগ্য (CI/CD ইন্টিগ্রেটযোগ্য)
  • কোড স্ক্যানিংয়ের জন্য সুইস আর্মি ছুরি টুল/SIEM
  • 100% কোড স্বচ্ছতা এবং আপনার কোডের সম্পূর্ণ নিয়ন্ত্রণ

ক্লাউড সংস্করণ এবং আরও অনেক কিছু https ://www.scanmycode.today-এ

ক্লাউড সংস্করণে আরও অনেক প্লাগইন রয়েছে, এছাড়াও অন্যান্য প্লাগইনগুলি লাইসেন্সের জন্য বাণিজ্যিকভাবে উপলব্ধ (GitHub, GitHub সংগঠন, স্ল্যাক)

অবদান

অবদানকারী ব্যক্তি এবং প্রতিষ্ঠানের জন্য খুঁজছেন. [email protected] এ আমার সাথে নির্দ্বিধায় যোগাযোগ করুন

সবকিছু

  • আপডেট নির্ভরতা (ব্যাকএন্ড এবং ফ্রন্টএন্ড)
  • সর্বশেষ প্রতিক্রিয়া আপডেট করুন
  • Python3 এ আপডেট করুন (স্ক্যানমাইকোড৩ শাখা দেখুন – WIP)
  • আপডেট/নতুন চেকার যোগ করুন (যদি আপনি চান)

লাইসেন্সিং

স্ক্যানমাইকোডের কোয়ান্টিফাইড কোড অংশগুলি BSD-3 ক্লজ লাইসেন্সের অধীনে প্রকাশিত হয়। যাইহোক, পরিবর্তনগুলি এলজিপিএল-2.1-এর অধীনে কমনসক্লজ সহ প্রকাশ করা হয়।

আপনি এই সফ্টওয়্যারটি ব্যবহার করতে পারেন, তবে এটি বিক্রি করতে পারবেন না, এটির উপর ভিত্তি করে পরিষেবাগুলিও (SaaS – একটি পরিষেবা সেটআপ হিসাবে সফ্টওয়্যার)। এটি কমনসক্লজ। আপনি যদি এটি করতে চান, অনুগ্রহ করে অনুমতির জন্য প্রথমে আমার সাথে [email protected] এ যোগাযোগ করুন৷

স্থাপন

আমরা Scanmycode ইনস্টল করার জন্য বিভিন্ন বিকল্প প্রদান করি। কোনটি আপনার জন্য সঠিক তা নির্ভর করে আপনার ব্যবহারের ক্ষেত্রে।

  • আপনি যদি স্ক্যানমাইকোড পরিবর্তন বা পরিবর্তন করতে চান তাহলে ম্যানুয়াল ইনস্টলেশন সবচেয়ে ভালো
  • ডকার-ভিত্তিক ইনস্টলেশন সম্ভবত অনেক কাজ ছাড়াই স্ক্যানমাইকোড চেষ্টা করার সবচেয়ে সহজ উপায়
  • আপনি যদি পেশাদার পরিকাঠামোতে (সম্ভবত একাধিক সার্ভারের সাথে) স্ক্যানমাইকোড চালাতে চান তবে উত্তর -ভিত্তিক ইনস্টলেশন সবচেয়ে উপযুক্ত উপায়।

নিম্নলিখিত বিভাগে শুধুমাত্র ম্যানুয়াল ইনস্টলেশন প্রক্রিয়া নিয়ে আলোচনা করা হবে, অন্যান্য বিকল্পগুলির জন্য অনুগ্রহ করে তাদের সংশ্লিষ্ট সংগ্রহস্থলগুলি পরীক্ষা করুন৷

ম্যানুয়াল ইনস্টলেশন

ইনস্টলেশন তিনটি অংশ নিয়ে গঠিত:

  • Scanmycode চালানোর জন্য প্রয়োজনীয় নির্ভরতা ইনস্টল করুন
  • প্রয়োজনীয় সোর্স কোড ডাউনলোড করুন
  • কনফিগারেশন সেট আপ করুন

নির্ভরতা ইনস্টল করা হচ্ছে

Scanmycode নিম্নলিখিত বাহ্যিক নির্ভরতা প্রয়োজন:

  • একটি বার্তা ব্রোকার (ব্যাকগ্রাউন্ড কাজ বার্তা সারির জন্য প্রয়োজনীয়)। আমরা হয় RabbitMQ বা Redis সুপারিশ করি।
  • একটি ডাটাবেস (কোর অ্যাপ্লিকেশনের জন্য প্রয়োজনীয়)। আমরা PostgreSQL সুপারিশ, কিন্তু SQLite পাশাপাশি সমর্থিত. অন্যান্য ডাটাবেস সিস্টেমগুলিও কাজ করতে পারে (যেমন MySQL), কিন্তু বর্তমানে আনুষ্ঠানিকভাবে সমর্থিত নয়। আপনার যদি একটি অ-সমর্থিত ডাটাবেসে Scanmycode চালানোর প্রয়োজন হয়, তাহলে অনুগ্রহ করে আমাদের সাথে যোগাযোগ করুন এবং আমরা আপনাকে কিছু নির্দেশনা দিতে পেরে খুশি হব।

Scanmycode CE সোর্স কোড ডাউনলোড করুন

এখন নির্ভরতা ইনস্টল করার সাথে, আমরা এগিয়ে যেতে পারি এবং Scanmycode ডাউনলোড করতে পারি:

    git clone [email protected]:marcinguy/scanmycode-ce.git

একটি ভার্চুয়াল পরিবেশ সেট আপ করুন (ঐচ্ছিক)

উপরন্তু, Scanmycode চালানোর জন্য একটি (Python 2.7) ভার্চুয়াল পরিবেশ তৈরি করার পরামর্শ দেওয়া হচ্ছে:

    virtualenv venv

    #activate the virtual environment
    source venv/bin/activate

প্রয়োজনীয় পাইথন প্যাকেজ ইনস্টল করুন

স্ক্যানমাইকোড সিই পাইথন প্যাকেজ ম্যানেজার, পিপের মাধ্যমে নির্ভরতা পরিচালনা করে। এগুলি ইনস্টল করতে, কেবল চালান

    pip install -r requirements.txt

সেটিংস সম্পাদনা

Scanmycode YAML সেটিংস ফাইলের মাধ্যমে কনফিগার করা হয়। অ্যাপ্লিকেশনটি শুরু করার সময়, এটি ক্রমবর্ধমানভাবে বিভিন্ন ফাইল থেকে সেটিংস লোড করে, সেটিংস অবজেক্টটি পুনরাবৃত্তভাবে আপডেট করে। প্রথমত, এটি থেকে ডিফল্ট সেটিংস লোড হবে quantifiedcode/settings/default.yml। তারপরে, এটি একটি QC_SETTINGSএনভায়রনমেন্ট ভেরিয়েবল সংজ্ঞায়িত করা হয়েছে কিনা তা পরীক্ষা করবে এবং একটি বৈধ ফাইলের দিকে নির্দেশ করে এবং যদি তাই হয় তবে এটি এটি থেকে সেটিংস লোড করবে (সম্ভবত ডিফল্ট সেটিংস ওভাররাইট করে)। যদি না হয়, এটি settings.ymlবর্তমান কার্যকারী ডিরেক্টরিতে একটি ফাইল সন্ধান করবে এবং সেখান থেকে সেটিংস লোড করবে। অতিরিক্তভাবে, এটি একটি QC_SECRETSএনভায়রনমেন্ট ভেরিয়েবল সংজ্ঞায়িত করা হয়েছে কিনা তা পরীক্ষা করবে এবং একটি বৈধ ফাইলের দিকে নির্দেশ করে এবং সেখান থেকে সেটিংসও লোড করবে (এটি সংবেদনশীল সেটিংসের জন্য উপযোগী যা বাকিদের থেকে আলাদা রাখা উচিত [যেমন সংস্করণ নিয়ন্ত্রণে চেক না করা]) .

সংগ্রহস্থলের রুটে একটি নমুনা settings.ymlফাইল রয়েছে যেটি থেকে আপনি শুরু করতে পারেন।

সেটআপ চলমান

আপনার সেটিংস সম্পাদনা করার পরে, এর মাধ্যমে সেটআপ কমান্ডটি চালান

    #run from the root directory of the repository
    python manage.py setup

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

ওয়েব অ্যাপ্লিকেশন চলমান

ওয়েব অ্যাপ্লিকেশন চালানোর জন্য, সহজভাবে চালান

    python manage.py runserver

ব্যাকগ্রাউন্ড ওয়ার্কার রানিং

ব্যাকগ্রাউন্ড ওয়ার্কার চালানোর জন্য, সহজভাবে চালান

    python manage.py runworker

ডকার-ভিত্তিক ইনস্টলেশন

ডকার ফোল্ডার দেখুন। আপনি একটি কমান্ড ব্যবহার করে সবকিছু স্পিন আপ করতে পারেন।

উত্তর-ভিত্তিক ইনস্টলেশন

শীঘ্রই আসছে!

 

Related Posts

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

সদাই একাডেমি
সদাই একাডেমি একটি অনলাইন ভিডিও শেখার প্ল্যাটফর্ম। এথিক্যাল হ্যাকিং, এসইও, ওয়েব ডেভেলপিং শিখুন

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

Privacy & Cookies Policy
error: checked
UA-200779953-1