আসসালামু আলাইকুম
আমাদের দেশে এখন অনেক ভালো বাগ হান্টার থাকলেও ভালো ডিবাগার নেই। আর থাকলেও পরিমানে খুব কম,তাই আজকে আলোচনা করব ডিবাগিং নিয়ে,কিভাবে একজন ডিবাগার হওয়া যায় তা নিয়ে।
ক্রিয়েটিভিটির জায়গা বলতে প্রোগ্রামিং আর দক্ষতা প্রয়োগের জায়গা বলতে পেনিট্রেশন টেস্টিংকেই যারা বুঝেন তাদের জন্য ডিবাগিং হতে পারে দক্ষতা প্রয়োগের সবথেকে সঠিক জায়গা।ডেভেলপাররা তৈরি করে, বাগ হান্টাররা ডেভেলপারদের তৈরি করা জিনিসটার বাগ বাহির করে, আর ডিবাগাররা সেই বাগ ঠিক করে।
ডিবাগিং কি? ডিবাগার কে?
ডিবাগিং মানে বাগ ঠিক করা আর ডিবাগার হচ্ছে যারা তা করে।
কিভাবে একজন ডিবাগার হব?
ডিবাগার হতে হলে প্রথমে প্রোগ্রামিং এক্সপার্ট হতে হবে কারণ ওয়েবসাইট,সফটওয়্যার,অপারেটিং সিস্টেম বিভিন্ন প্রোগ্রামিং ব্যবহার করে তৈরি করা হয়।ধরুন আপনি কোন ওয়েবসাইটের বাগ ঠিক করতে চাচ্ছেন তাইলে আপনাকে ঔ ওয়েবসাইটটি যেই প্রোগ্রামিং ব্যবহার করে তৈরি করা হয়েছে সেই প্রোগ্রামিংয়ে আপনাকে এক্সপার্ট হতে হবে।তারপর আপনাকে বাহির করতে হবে যে ঔ ওয়েবসাইটটির যেই বাগ আপনি ঠিক করতে চাচ্ছেন তা কোন প্রোগ্রামিং ইরর এর জন্য হচ্ছে। তারপর আপনাকে সেই ইররটি ঠিক করতে হবে। আপনি যদি প্রোগ্রামিং এক্সপার্ট না হন তাহলে আপনি ডিবাগার হতে পারবেন না কারণ বিভিন্ন টুলস দিয়ে খুব সহজেই বাগ খুজে পাওয়া যায় কিন্তু ডিবাগ টুলস দিয়ে হয় না আপনি devtools কিনবা অন্য ডিবাগিং টুলস ব্যবহার করতে পারেন কিন্তু তাও আপনাকে অ্যাডভান্স লেভেলের প্রোগ্রামার হতে হবে।কারণ সব বাগ ডিবাগিং টুল দিয়ে ডিবাগ করা যায় না।
আগে ঠিক করে নিন যে আপনি ওয়েববেস নাকি সফটওয়্যারবেস নাকি অন্যকোন বেস ডিবাগার হতে চান এবং সেই বেস অনুযায়ী প্রোগ্রামিং শিখা শুরু করুন। https://www.google.com/search?q=how+to+be+a+debugger এই লিংকটি গেলে গুগল আপনাকে সাজেশন দিবে যে আপনি কিভাবে ডিবাগার হতে পারেন।
If debugging is the process of removing bugs then programming must be the process of putting them in - Edsger W Dijkstra
''There's always one more bug''
ওয়েববেস কিংবা সফটওয়্যারবেস কিংবা অন্যকিছু ডিবাগ করার জন্য শুধু প্রোগ্রামিং এক্সপার্ট হলেই হবে না। আপনাকে কিছু কমন ইরর,বাগ জানতে হবে এবং সেই ইরর,বাগগুলো কিভাবে কাজ করে তা বুজতে হবে।কোন ইররের জন্য কোন বাগ হয় এইসব বিষয় বিস্তারিত জানতে হবে, ডিবাগিংয়ের প্রোসেস জানতে হবে,ডিবাগিংয়ের বিস্তারিত জানতে হবে।
কিছু কমন সফটওয়্যার ইরর হচ্ছে functinality errors,communication errors,missing command errors,error handling errors,control flow errors,syntax errors,Compile errors,run-time errors,logic errors
কয়েকটি কমন সফটওয়্যার বাগ হচ্ছে sql injection,xss,csrf,open redirect, buffer overflow,rce, code injection,Privilege escalation, Authentication Bypass, Memory Corruption
কিছু কমন ওয়েবসাইট ইরর হচ্ছে http errors,long metadata,missing alt text on images,expiring domain name,duplicate page content,long forms,Too long on text/ too short on text,avoiding analytics
কয়েকটি কমন ওয়েবসাইট বাগ হচ্ছে sql injection,xss,csrf,open redirect, buffer overflow,Broken Access Control,Missing Function Level Access Control,Security Misconfiguration,Insufficient Attack Protection,Unvalidated Redirects and Forwards
এখন আপনার কাজ হবে গুগল থেকে এইসব ইরর আরোও ইরর,এইসব নাগ ও আরোও বাগের বিস্তারিত জানা। এবং কিভাবে ডিবাগিং করা যায় সেটারও বিস্তারিত জানা।
কিভাবে বাগ খুঁজে বের করে?
অনেককেই বাগ খুঁজে ডিবাগ করতে হয় সে ক্ষেত্রে সবথেকে জরুরী বিষয় হচ্ছে বাগ খুঁজে বের করা।
আপনি যেই ওয়েবসাইট কিংবা যেই সফটওয়্যারটি ডিবাগ করবেন আগে জানুন যে কোন প্রোগ্রামিং ব্যবহার করে তৈরি করা হয়েছে তারপর বাহির করুন সেই ল্যাংগুয়েজ বেস কি কি বাগ আছে এক এক করে বাগ গুলো আপনার ওয়েবসাইট কিংবা সফটওয়্যারে চেক করুন,কিছু কমন ইরর আছে সেগুলো চেক করুন,কিছু অতিক্ষুদ্র ভুল আছে সেগুলোও চেক করুন,বাগ ফান্ডিং টুলস ব্যবহার করুন বাগ বাহির করার জন্য,বাগ হান্টারদের মত ভিন্নভাবে চিন্তা করে বাগ বাহির করুন (আশা করি জানা আছে যে বাগ হান্টাররা কিভাবে বাগ বাহির করে,না জানলে গুগল করুন),সম্ভব হলে মেনুয়ালি সব কিছু চেক করুন, কোন প্রোগ্রামিং ইররকে ছোট মনে করার ভুল করবেন না একটি ছোট প্রোগ্রামিং ইরর অনেক ক্ষতি করতে পারে।
ডিবাগিংয়ের প্রোসেসটি হচ্ছে Indentify the error > Find the error > Analyze the error > Prove your analysis > Cover lateral damage > Fix the error > Validate the solution
কিভাবে ডিবাগ করে?
ডিবাগ করার ক্ষেত্রে বাগ পাওয়ার সাথে সাথে তা ঠিক করুন মেনুয়ালী ঠিক করাটাই বেটার। তবে আপনি যদি ডিবাগিং টুলস ব্যবহার করেন সময় বাঁচানোর জন্য তাইলে তা করতে পারেন।আপনি যদি মনে করেন যে ডিবাগিং টুলস দিয়েই সব বাগ ডিবাগ করব তাইলে ভুল করবেন কারণ সব বাগ ডিবাগিং টুলস দিয়ে ঠিক করা যায় না।তবে আপনি এমন করতে পারেন যে প্রথমে ডিবাগিং টুল দিয়ে ডিবাগ করলেন তারপর মেনুয়ালী চেক করেন নিলেন।
মনে করুন আপনি sqli বাগ ডিবাগ করতে চাচ্ছেন তাইলে গুগলে সার্চ করুন https://www.google.com/search?q=how+to+fix+sqli
আপনার উওর পেয়ে যাবেন।আপনি যেই বাগ ডিবাগ করতে চাচ্ছেন তা গুগলে সার্চ করুন কিভাবে ডিবাগ করে পেয়ে যাবেন।প্রোগ্রামিং,ডিবাগিং নিয়ে কোন প্রশ্ন থাকলে আপনি Stackoverflow এর ওয়েবসাইটে প্রশ্ন করতে পারেন আপনার উওর পেয়ে যাবেন।
ফেসবুকে আমি
m.facebook.com/100009039018516
আমি মোঃ রেজওয়ানুল হক স্বজন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 7 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 13 টি টিউন ও 2 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 3 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
জটিল বিষয়,মাথায় ঢুকে না,তবে ডিবাগিং বিষয়ে কৌতুহল ছিল তাই আর্টিকেলটি পড়েছেি,
ধন্যবাদ ভাইসাহেব