বেশিরভাগ আধুনিক ভাষাগুলিতে (যা একরকম ব্যাখ্যা করা হয়) কিছু ধরণের ইওল ফাংশন রয়েছে। এই জাতীয় ফাংশন স্বেচ্ছাসেবী ভাষা কোড কার্যকর করে, বেশিরভাগ সময় স্ট্রিং হিসাবে মূল যুক্তি হিসাবে পাস হয় (বিভিন্ন ভাষাগুলি ইওল ফাংশনে আরও বৈশিষ্ট্য যুক্ত করতে পারে)।
আমি বুঝতে পারি ব্যবহারকারীদের এই ফাংশনটি সম্পাদন করার অনুমতি দেওয়া উচিত নয় ( eval
বিশেষত সার্ভার-সাইড সফ্টওয়্যার সহ, বিশেষত সার্ভার-সাইড সফ্টওয়্যার সহ, ব্যবহারকারীরা এই ফাংশনটি সম্পাদন করতে পারবেন না ( সম্পাদনা করুন, কোনও স্বেচ্ছাসেবীর ব্যবহারকারীর কাছ থেকে প্রত্যক্ষ বা অপ্রত্যক্ষভাবে স্বেচ্ছাচারিত ইনপুট নিন )), কারণ তারা প্রক্রিয়াটিকে দূষিত কোড কার্যকর করতে বাধ্য করতে পারে। এইভাবে, টিউটোরিয়াল এবং সম্প্রদায়গুলি আমাদেরকে eval ব্যবহার না করার জন্য বলে । যাইহোক, অনেক সময় রয়েছে যেখানে eval দরকারী এবং ব্যবহৃত হয়:
- সফ্টওয়্যার উপাদানগুলিতে কাস্টম অ্যাক্সেসের নিয়মগুলি (আইআইআরসি ওপেনআরপি-তে একটি বস্তু রয়েছে
ir.rule
যা ডায়নামিক পাইথন কোড ব্যবহার করতে পারে)। - কাস্টম গণনা এবং / অথবা মানদণ্ড (কাস্টম কোড গণনার অনুমতি দেওয়ার জন্য ওপেনআরপি-র মতো ক্ষেত্র রয়েছে)।
- ওপেনআরপি রিপোর্ট পার্সার্স (হ্যাঁ আমি জানি আমি আপনাকে ওপেনআরপি স্টাফ দিয়ে প্রকাশ করছি ... তবে এটি আমার কাছে প্রধান উদাহরণ)।
- কিছু আরপিজি গেমগুলিতে কোডিং স্পেল এর প্রভাবগুলি।
সুতরাং তারা যতক্ষণ সঠিকভাবে ব্যবহার করা হয় ততক্ষণ তাদের একটি ভাল ব্যবহার রয়েছে। প্রধান সুবিধাটি হ'ল বৈশিষ্ট্যটি অ্যাডমিনদের আরও ফাইল তৈরি না করে কাস্টম কোড লেখার মঞ্জুরি দেয় এবং এগুলি অন্তর্ভুক্ত করে (যদিও বেশিরভাগ ফ্রেমওয়ার্কগুলি alওয়াল বৈশিষ্ট্যগুলি ব্যবহার করে কোনও ফাইল, মডিউল, প্যাকেজ, ... পড়ার জন্য নির্দিষ্ট করার উপায়ও রয়েছে)।
তবে, জনপ্রিয় সংস্কৃতিতে ইভাল মন্দ evil আপনার সিস্টেমে ভাঙার মতো জিনিসগুলি মনে আসে।
তবে, অন্যান্য ফাংশনগুলি হ'ল ক্ষতিকারক হতে পারে যদি কোনওভাবে ব্যবহারকারীদের দ্বারা অ্যাক্সেস করা হয়: আনলিংক করুন, পড়ুন, লিখুন (ফাইল শব্দার্থক), মেমরির বরাদ্দ এবং পয়েন্টার গাণিতিক, ডাটাবেস মডেল অ্যাক্সেস (এসকিউএল-ইনজেকটেবল ক্ষেত্রে বিবেচনা না করেও)।
সুতরাং, মূলত, যখন বেশিরভাগ সময় কোনও কোড সঠিকভাবে লেখা হয় না বা সঠিকভাবে দেখা হয় না (সংস্থানসমূহ, ব্যবহারকারী, পরিবেশ, ...), কোডটি খারাপ এবং এমনকি অর্থনৈতিক প্রভাব পর্যন্ত নিয়ে যেতে পারে।
তবে eval
ফাংশনগুলির সাথে বিশেষ কিছু আছে (ভাষা নির্বিশেষে)।
প্রশ্ন : অন্যান্য ভয়ঙ্কর বৈশিষ্ট্যগুলিতে একই মনোযোগ দেওয়ার পরিবর্তে এই ভয়টি জনপ্রিয় সংস্কৃতির অংশ হওয়ার কোনও historicalতিহাসিক সত্য আছে কি?
eval
, এর একটি অভ্যন্তরীণ ফাংশন রয়েছে যা কোডকে safe_eval
বিপজ্জনক কাজগুলি থেকে বিরত রাখতে পরিবেশ প্রস্তুত করে। বাগগুলি পাওয়া গেছে, যেহেতু পাইথন একটি বেশ নমনীয় ভাষা এবং তাই এটি নিয়ন্ত্রণ করা শক্ত।