Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

ORDER BY खंड में SQL इंजेक्शन को रोकें

अगर आपके पास है स्ट्रिंग्स से निपटने के लिए, तो व्हाइट-लिस्टिंग आपकी सबसे अच्छी शर्त है। सबसे पहले, sortDirection श्वेत-सूची के लिए बहुत तुच्छ होना चाहिए:एक केस-असंवेदनशील "asc" . की तुलना में / "desc" और आपको सेट किया जाना चाहिए। अन्य के लिए, मेरी प्राथमिकता ज्ञात स्तंभों . को श्वेत-सूचीबद्ध करना होगा , शायद अपेक्षित Type . में पास करके डेटा और सत्यापन के लिए। लेकिन एक पूर्ण चुटकी पर, आप रेगेक्स के साथ प्रतिबंधित कर सकते हैं (कहें) लागू करें कि वे सभी कड़ाई से . हैं अल्फा-न्यूमेरिक (ए-जेड, ए-जेड, 0-9 रेंज में - यदि आवश्यक हो तो अंडरस्कोर हो सकता है) - और फिर [] जोड़ें , यानी

return string.Format("[{0}] {1}", sortColumn, sortDirection);

लेकिन:ज्ञात स्तंभों की सख्त श्वेत-सूची बहुत बेहतर होगी, जैसा कि दिशा के लिए एक एनम होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2005 - ऑर्डर ऑफ़ इनर जॉइन

  2. CTE का उपयोग करके SQL कथन को सरल बनाएं

  3. क्वेरी-एसक्यूएल सर्वर द्वारा समूह में अंतिम पंक्ति खोजें

  4. Sql सर्वर डेटाबेस में पिक्चरबॉक्स इमेज डालें

  5. मैं TIMESTAMP कॉलम से दिनांक/समय की जानकारी कैसे प्राप्त करूं?