मैं सिर्फ एक विचार के साथ टकरा रहा था, और मैं सुरक्षा मुद्दों को चुनौती देने के बिना बैकएंड में इसे हल करने का कोई तरीका नहीं सोच सका।'अविश्वसनीय' उपयोगकर्ताओं से एल्गोरिदम का मूल्यांकन
कहें कि मैं उपयोगकर्ताओं को एक webservice के माध्यम से सरल एल्गोरिदम बनाने का अवसर देना चाहता हूं और इन्हें छोटी सूचियों पर परीक्षण करना चाहता हूं, उदा। range(0, 5)
फिर परिणामों को वापस किसी अन्य webservice, टेम्पलेट या ईमेल के माध्यम से रिपोर्ट करें, वास्तव में कोई फर्क नहीं पड़ता, यह मूल्यांकन है जो मुझे परेशान करता है।
का उपयोग अजगर:
class Algorithm(whatever):
function = whatever.CharField(max_length=75)
एक उपयोगकर्ता की तरह कुछ में प्रवेश हो सकता है: किसी भी बनाया-इन अलग करना
'f(x)=x+(x/5)**0.75'
बेशक मुझे eval
इस्तेमाल कर सकते हैं में से हैं, की तुलना में "x" आदि अन्य तार, लेकिन यह अभी भी दुर्भाग्यपूर्ण अभ्यास होगा।
एकमात्र चीज जो मैं कर सकता हूं किसी भी मूल्यांकन कार्यक्षमता को जावास्क्रिप्ट फ्रंट एंड पर ले जाना है।
ठीक है, Google निश्चित रूप से इस तरह की चीज को उनके कोडजैम में करता है। तो मुझे आश्चर्य है कि वे इस मुद्दे को कैसे हल करते हैं। शायद आवश्यक सेटअप के साथ अविश्वसनीय कोड एक वीएम चलाएं। इसलिए यदि वे वीएम को बोर्क करते हैं, तो भी आप सुरक्षित हैं – inspectorG4dget
यदि आप अंतिम "आयात" कुंजी शब्द को हटाते हैं तो डेटा नुकसान के मामले में कुछ भी नहीं होना चाहिए। –
@MaxLi '__import__' के बारे में क्या? – Natan