में बाध्यकारी करते समय विशिष्ट फ़ील्ड को सुरक्षित रखें मैं पृष्ठ पर काम कर रहा हूं जो उपयोगकर्ताओं को प्रोफ़ाइल जानकारी संपादित करने की अनुमति देता है। मैं चाहता हूं कि वे अपनी सार्वजनिक जानकारी संपादित कर सकें, लेकिन उन्हें अपने उपयोगकर्ता प्रकार जैसे सिस्टम झंडे को बदलने की अनुमति न दें।वसंत
यह स्प्रिंग एमवीसी (3.0) के साथ लागू किया गया है। उपयोगकर्ता वस्तु ठेठ फ़ील्ड होते हैं जैसे firstName
, lastName
, email
(सभी संपादन योग्य होना चाहिए) और एक बूलियन administrator
(जो संपादन योग्य नहीं होना चाहिए
मेरे विधि इस तरह दिखता है:।
@RequestMapping(method = RequestMethod.POST)
public String doEdit(
@ModelAttribute("user") User user,
BindingResult result,
ModelMap model)
throws IOException
{
// validate, blah blah
// save user object
// return page
}
मेरे प्रपत्र खेतों firstName
, lastName
आदि और लग रहा था ठीक काम करने के लिए भी शामिल है।
समस्या यह है कि अगर एक दुर्भावनापूर्ण उपयोगकर्ता पदों पैरामीटर administrator
के रूप में "सही" वे इस क्षेत्र को जब वे shouldn सेट कर सकते हैं के साथ एक प्रश्न 'टी।
मुझे पता है कि मैं केवल उन फ़ील्ड के साथ एक अलग "फ़ॉर्म" ऑब्जेक्ट बना सकता हूं जिन्हें मैं बदलना चाहता हूं और स्वचालित बाध्यकारी के लिए इसका उपयोग करता हूं। (डेटा पर प्रतिलिपि)। समस्या यह है कि मेरे पास बहुत सी जगहें हैं जो इस तकनीक का उपयोग करती हैं। (उपयोगकर्ता और अन्य वस्तुओं के लिए)। जब मैं फ़ील्ड जोड़ना चाहता हूं तो इसे बनाए रखने में परेशानी होगी।
क्या स्प्रिंग एमवीसी में एनोटेशन या अन्य तकनीकों का उपयोग करने के लिए पैरामीटर श्वेतसूची और मनमानी डोमेन ऑब्जेक्ट गुणों में परिवर्तन को रोकने का कोई तरीका है?
सिर्फ एक ऐतिहासिक किस्सा, स्प्रिंग इस क्षेत्र में इतने ढीले था, एक दुर्भावनापूर्ण उपयोगकर्ता इंजेक्षन सकता है कि "class.classLoader.URLs []" किसी भी मॉडल वस्तु के लिए, पूरी तरह से सर्वर का नियंत्रण लेने। http://www.springsource.com/security/cve-2010-1622 – irreputable
मैं flabbergasted हूँ। मैंने पिछले हफ्ते उत्पादन में वसंत 3.0.2 से वसंत 3.0.5 तक अपग्रेड किया था। –