गतिशील LINQ पुस्तकालय (link) का उपयोग करना, यह इंजेक्शन के लिए असुरक्षित है? और (यदि हां) तो यह कैसे संरक्षित किया जा सकता है?गतिशील LINQ के माध्यम से इंजेक्शन संभव है?
Security Considerations (Entity Framework) से कुछ पृष्ठभूमि:
संस्थाओं इंजेक्शन हमलों के लिए LINQ:
हालांकि क्वेरी रचना संस्थाओं के लिए LINQ में संभव है, यह ऑब्जेक्ट मॉडल एपीआई के माध्यम से किया जाता है। इकाई एसक्यूएल प्रश्नों के विपरीत, संस्थाओं प्रश्नों का LINQ स्ट्रिंग परिवर्तन या संयोजन का उपयोग करके बना नहीं कर रहे हैं, और वे परंपरागत एसक्यूएल इंजेक्शन हमले की संभावना नहीं हैं।
चूंकि डायनामिक एसक्यूएल तारों का उपयोग करके बना है, इसका मतलब यह है कि यह इंजेक्शन वैक्टरों के लिए अतिसंवेदनशील हो सकता है? या LINQ एसक्यूएल के लिए स्वचालित रूप से गतिशील LINQ पुस्तकालय के भीतर अंतर्निहित डेटाप्रकार के आधार पर अपने मूल्यों parametrizing की देखभाल करेगा?
या यह पूरी तरह से सुरक्षित के बाद से गतिशील क्वेरी स्मृति में बजाय एसक्यूएल (जिससे एसक्यूएल अनुक्रमित से कोई लाभ negating) के खिलाफ प्रदर्शन किया जाएगा है?
मैं DynamicLibrary.cs
कोड को समझने के माध्यम से काम कर रहा है, लेकिन मुझे यकीन है कि मैं आसानी से कुछ अनदेखी की जा सकती हूँ।
चूंकि यह प्रश्न गतिशील LINQ लाइब्रेरी के बारे में है, तो इस प्रश्न को linq-to-sql
और linq-to-entities
(एंटीटी फ्रेमवर्क के संदर्भ के बावजूद) पर लागू होने के लिए माना जा सकता है।
अच्छा बिंदु। ढांचा आपको अपने आप से बचा नहीं सकता है। –
इसलिए डेटा लीक करने के परिणामस्वरूप इंजेक्शन अभी भी संभव है, लेकिन आप अभी भी 'बॉबी टेबल' से अलग हैं (डेटा छोड़ना/डेटा हटाएं/हटाएं) घटना; क्या आप डेटाबेस में रिकॉर्ड्स को बदलने के लिए एक चुनिंदा और कहां क्लॉज का कारण बन सकते हैं? – Seph
@ सेफ - नहीं, रिकॉर्ड्स को बदलना संभव नहीं है क्योंकि linq क्वेरी कभी भी SQL, अद्यतन या ड्रॉप करने के लिए अनुवाद नहीं करेगा। "जहां" फ़िल्टर संशोधित करके अनधिकृत डेटा तक पहुंच प्राप्त करने का एकमात्र संभावित हमला हो सकता है। – Krizz