ডিফল্ট আপনাকে ডুবাতে পারে
TL;DR: অজানা প্রতিক্রিয়াগুলিকে অননুমোদিত হিসাবে বিবেচনা করুন, বৈধ হিসাবে নয়।
আজ কম্পিউটার নিরাপত্তা দিবস এবং প্রত্যেক প্রোগ্রামারকে তার দায়িত্ব স্বীকার করতে হবে।
লেনদেন পরিচালনা করার জন্য ক্রেডিট কার্ড প্রসেসর থেকে প্রতিক্রিয়া পুলের উপর নির্ভর করে এমন একটি অ্যাপ্লিকেশন হ্যান্ডলিং বিক্রয় কল্পনা করুন।
প্রতিটি ক্রেডিট কার্ড প্রসেসর বিভিন্ন পরিস্থিতিতে পূর্বনির্ধারিত প্রতিক্রিয়া কোড প্রদান করে, যেমন অপর্যাপ্ত ব্যালেন্স বা মেয়াদোত্তীর্ণ কার্ড।
সমস্যাটি শুরু হয় যখন একটি প্রসেসর অস্বীকার করা লেনদেনের জন্য একটি নতুন প্রতিক্রিয়া কোড যোগ করে কিন্তু প্ল্যাটফর্মকে অবহিত করে না।
অ্যাপ্লিকেশানটি নতুন কোডটি চিনতে পারে না, এটিকে "পাওয়া যায় নি" হিসাবে বিবেচনা করে এবং ক্রয় অনুমোদন করে৷
ব্যবহারকারীরা এই ত্রুটিটি লক্ষ্য করে এবং অননুমোদিত কেনাকাটা করতে এটিকে কাজে লাগায়।
প্ল্যাটফর্মের আয় কমে গেছে, যার ফলে দেউলিয়া হয়ে গেছে।
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; default: // Authorize purchase break; }
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "APPROVED": // Authorize purchase break; case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; case "DECLINED_NEW_REASON": // Handle new declined reason break; default: // Reject purchase (default case for unknown responses) break; }
আপনি ত্রুটি-হ্যান্ডলিং যুক্তি পর্যালোচনা করে এই গন্ধ সনাক্ত করতে পারেন।
সিস্টেম লগ এবং অস্বীকৃত ক্ষেত্রে অস্বীকার করে কিনা পরীক্ষা করুন.
স্বয়ংক্রিয় পরীক্ষাগুলি নতুন বা অপ্রত্যাশিত ইনপুটগুলি বৈধ ক্রিয়াগুলিতে ডিফল্ট কিনা তা সনাক্ত করতে সহায়তা করতে পারে।
স্ট্যাটিক বিশ্লেষণ সরঞ্জাম সম্ভাব্য অসম্পূর্ণ ত্রুটি পরিচালনা পতাকাঙ্কিত করে সাহায্য করতে পারে।
পেমেন্ট প্রসেসরের প্রতিক্রিয়াগুলির আপনার অ্যাপ্লিকেশনের অভ্যন্তরীণ উপস্থাপনা এবং প্রসেসরের দ্বারা প্রত্যাবর্তিত প্রকৃত কোডগুলির মধ্যে এক-এক চিঠিপত্র বজায় রাখা গুরুত্বপূর্ণ।
আপনি যখন বিজেকশন ভাঙ্গবেন, আপনি একটি অমিল তৈরি করবেন।
অ্যাপ্লিকেশনটি অজানা কোডগুলিকে ভুলভাবে ব্যাখ্যা করে, যা অপ্রত্যাশিত আচরণ, নিরাপত্তা গর্ত এবং সম্ভাব্য বিপর্যয়কর ব্যবসায়িক পরিণতির দিকে পরিচালিত করে।
আপনি যদি অজানা কেসগুলি কীভাবে পরিচালনা করবেন তা নির্দিষ্ট না করলে এআই সরঞ্জামগুলি এই গন্ধ তৈরি করতে পারে।
উদাহরণস্বরূপ, জেনেরিক ত্রুটি হ্যান্ডলিং ডিফল্ট হতে পারে সৌম্য ফলাফল যেমন "না পাওয়া" বা "সফলতা"।
এআই জেনারেটরগুলি এই গন্ধটি ঠিক করতে পারে যখন আপনি তাদের অজানা কেসগুলিকে অননুমোদিত হিসাবে বিবেচনা করার নির্দেশ দেন এবং লগিং এবং অপ্রত্যাশিত পরিস্থিতিতে পরীক্ষা করার উপর জোর দেন।
মনে রাখবেন: এআই সহকারীরা অনেক ভুল করে
সঠিক নির্দেশনা ছাড়া | নির্দিষ্ট নির্দেশাবলী সহ |
---|---|
অজানা কেস সবসময় সতর্কতার সাথে পরিচালনা করুন।
ডিফল্ট যেমন "পাওয়া যায়নি" গুরুতর নিরাপত্তা সমস্যা এবং আর্থিক ক্ষতি হতে পারে.
লগিং এবং অজানা প্রতিক্রিয়া অস্বীকার করা আপনার উন্নয়ন অনুশীলনের অংশ করুন।
প্রোগ্রামিং করার সময় সিকিউরিটি সম্পর্কিত সিদ্ধান্ত বাম দিকে পরিবর্তন করুন।
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
কোড গন্ধ আমার মতামত .
Unsplash- এ Nathana Rebouças- এর ছবি
https://www.youtube.com/watch?v=J2QOejhA6ek
অনুমান সব ব্যর্থতার জননী।
বললেন ওইসাল
সফটওয়্যার ইঞ্জিনিয়ারিং মহান উক্তি
এই নিবন্ধটি CodeSmell সিরিজের অংশ।