HttpSolrServer के लिए क्वेरी का उपयोग करते समय, सौर क्वेरी इंजेक्शन से रोकें।Solrj
SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery(q);
QueryResponse queryResponse = solrServer.query(solrQuery);
मैं एक Solr क्वेरी, कुछ तरह का निर्माण करने की आवश्यकता है "लेखक: * user_inputed_text * शीर्षक: * user_inputed_text *" मैं PreparedStatement की तरह कुछ की जरूरत है, लेकिन मैं solrj पुस्तकालय में ऐसा ही कुछ भी नहीं मिला। क्वेरी का निर्माण कैसे करें जो इंजेक्शन को दूषित नहीं करेगा? उपयोगकर्ता द्वारा इनपुट स्ट्रिंग कैसे करें - \ user_input_text \ safe?
मैं concatenation का उपयोग कर क्वेरी का निर्माण कर रहा हूँ। जब मैं, उदाहरण के लिए इस कोड है:
public String buildQuery(String userInputedText) {
String query = "author:*" + userInputedText + "* OR title:*" + userInputedText + "*";
}
तो उपयोगकर्ता कुछ सबक्वेरी इंजेक्षन और परिणाम प्राप्त कर सकते हैं, कि सीमित नहीं है। उदाहरण के लिए इनपुट स्ट्रिंग था: "या शीर्षक:"। तो, पूरी क्वेरी होगी: लेखक: * या शीर्षक: * या शीर्षक: * या शीर्षक: *
इस मामले में उपयोगकर्ता को सभी परिणाम प्राप्त होते हैं (वे सीमित नहीं हैं) और पैटर्न लेखक को पास करते हैं: *? * या शीर्षक: *? *।
समस्या क्या है ... समस्या का सामना करें जो आप सामना कर रहे हैं – kirti
असल में यह मुझे स्पष्ट नहीं है कि आप क्या कह रहे हैं कि आपको इसे सुरक्षित करने की आवश्यकता है। क्या आप सोलर पर एक प्रश्न "असुरक्षित" बनाने का उदाहरण पोस्ट कर सकते हैं? आप एक प्रश्न कर रहे हैं, इसलिए अपने indeces को नुकसान पहुंचाना संभव नहीं है। मुझे लगता है कि आपको अपने लक्ष्य के बारे में अधिक जानकारी देना चाहिए। – Max