Eval करने के लिए वैकल्पिक () - रूबी, सुरक्षा, eval

मैं उस कोड के लिए एक विकल्प की तलाश में हूं:

 expl = eval "BeEF::Modules::Exploits::#{klass.capitalize}.new"

यहां eval पूरी तरह से असुरक्षित है। क्या कोई विकल्प है जिसका उपयोग मैं गतिशील रूप से कक्षाओं को उत्पन्न करने के बिना उत्पन्न कर सकता हूं? जैसा कि, क्लास हमेशा अलग होता है। तो मेरा कोड जेनेरिक रहता है।

आपके समय के लिए धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 7

आप मॉड्यूल # const_get का उपयोग कर सकते हैं:

expl = BeEF::Modules::Exploits.const_get(klass.capitalize).new

संबंधित सवाल
सबसे लोकप्रिय