2010-07-23 10 views
5

हमारे पास एक ऐसा फॉर्म है जिसमें पहले और अंतिम नाम के लिए फ़ील्ड हैं। मुझे अंडरस्कोर की अनुमति देने के लिए कहा गया था। मुझे अंडरस्कोर का उपयोग करने वाले किसी भी एसक्यूएल इंजेक्शन के बारे में पता नहीं है, लेकिन मैं उनके नाम पर अंडरस्कोर वाले किसी के बारे में भी नहीं जानता। क्या नामों में अंडरस्कोर को अनुमति देने या अनुमति देने का कोई अच्छा कारण नहीं है?क्या मुझे अंडरस्कोर को पहले और अंतिम नाम में अनुमति देना चाहिए?

संपादित करें: मैं पैरामीटर और सर्वर पक्ष सत्यापन का उपयोग कर रहा हूं। यह jQuery सत्यापन प्लगइन के माध्यम से क्लाइंट साइड सत्यापन के लिए है।

संपादित 2: मेरा मतलब यह नहीं था कि मुझे कोई सत्यापन करना चाहिए या नहीं ... मैं सिर्फ यह जानना चाहता था कि क्या अंडरस्कोर स्वीकार करने के लिए कोई अनिवार्य कारण है, जैसे मुझे स्वीकार करना चाहिए आयरिश लोग या हाइफ़न। उस पर आधारित, मैं ओरेन के जवाब को स्वीकार कर रहा हूं।

+0

आप किस सर्वर-साइड भाषा का उपयोग कर रहे हैं? – Sarfraz

+2

ब्याज से, क्या किसी ने कभी * असली * नाम के बारे में सुना है जिसमें अंडरस्कोर है? – stuartd

+0

@ एसएसी - हम .NET –

उत्तर

14

आपको जितना संभव हो उतना उदार होना चाहिए जितना आप नाम के रूप में अनुमति देते हैं। अंडरस्कोर को अस्वीकार करने का कोई अच्छा कारण नहीं है, तो ऐसा क्यों करें? ऐसे लोगों की कई डरावनी कहानियां हैं जो सॉफ़्टवेयर का उपयोग करने का प्रयास करती हैं जो उनके वास्तविक नाम को अस्वीकार करती है। उन धारणाओं के लिए Falsehoods Programmers Believe About Names पर एक नज़र डालें जो आपको नहीं करना चाहिए।

+0

+1 मैंने वहां से पहले वहां पहुंचे! –

+2

वह ब्लॉग पोस्ट काफी बेकार है। यह वास्तव में आपके सिस्टम में नामों को संभालने के लिए कोई सलाह नहीं देता है। –

+2

यह नहीं है? मैंने सोचा कि यह आपके अनुप्रयोगों में नाम इनपुट_ को अनावश्यक रूप से प्रतिबंधित करने के लिए श्वेतसूची का उपयोग न करने पर काफी सलाह देता है। –

12

व्हाट्सलिस्ट का उपयोग करके एसक्यूएल इंजेक्शन रोकें!

क्या आप अभी तक O'Neill पर आ गए हैं?

इसके बजाय, पैरामीटर का उपयोग करें।

मैं मानता होगा, हालांकि, कि श्वेतपत्रियाँ काली सूची की तुलना में बेहतर काम करेंगे


पुन: संपादित करें:
आप सब पर इस तरह के सत्यापन ऐसा नहीं करना चाहिए।
यदि आपका सर्वर-साइड कोड इसे संभाल सकता है, तो --'[email protected]_ नाम के साथ कुछ भी गलत नहीं है।
यदि आपका सर्वर-साइड कोड इसे संभाल नहीं सकता है, तो यह होना चाहिए।

+2

+1, लेकिन बड़े –

+0

होने की आवश्यकता है मैं पैरामीटर और सर्वर साइड सत्यापन का उपयोग कर रहा हूं। यह सिर्फ क्लाइंट साइड सत्यापन के लिए है। –

+0

+1 मुझ पर चिल्लाना बंद करो :) – Fosco

3

आप अपना सत्यापन गलत कर रहे हैं। एसक्यूएल इंजेक्शन को रोकने पर, डेटा से बचने के लिए बस प्लेसहोल्डर्स या अपने डेटाबेस लाइब्रेरी के एस्केप फ़ंक्शन का उपयोग करें। नाम में आप कौन से पात्रों का उपयोग करते हैं, इससे कोई फर्क नहीं पड़ता।

1

आदर्श रूप में, आप नहीं एसक्यूएल इंजेक्शन के साथ एक समस्या है कोई भी वर्ण अनुमति देने के लिए सक्षम होना चाहिए और क्योंकि आप पैरामिट्रीकृत प्रश्नों आदि

आप ' नामंज़ूर है का उपयोग कर रहे हैं? आपको लगता है कि श्री O'Reilly उसे पसंद है?

+0

हमने आयरिश लोगों को अनुमति दी। –

+0

- यह टिम या विलियम पर निर्भर करता है। –

2

आपको एस्ट्रोफ़ेस और हाइफ़न (O'Reilly, Double-Barrel) की अनुमति देने की आवश्यकता होगी। हालांकि किसी नाम में अंडरस्कोर के बारे में कभी नहीं सुना।

1

यदि आप धारणा के साथ अंडरस्कोर को रोकते हैं कि हम अंडरस्कोर के नामों से अवगत नहीं हैं, तो क्या आप अन्य दर्जनों (सैकड़ों) अन्य "विशेष पात्रों" के लिए भी ऐसा करेंगे?

जब तक अंडरस्कोर को अवरुद्ध करने का कोई कारण नहीं है, तो मैं इसे उपयोगकर्ता के नाम पर अपना नाम दर्ज करने में सक्षम होने के लिए छोड़ दूंगा।

संबंधित मुद्दे