2011-07-08 9 views
8

मैं सिर्फ निम्न आलेख पर ठोकर खाई में पात्रों:UTF-8 यूआरएल

http://www.josscrowcroft.com/2011/code/utf-8-multibyte-characters-in-url-parameters-%E2%9C%93/

यूआरएल में UTF-8 वर्णों का उपयोग कर के बारे में लेख बात करती है।

मैं जानना चाहता हूं कि इसका उपयोग सुरक्षित है या नहीं।

मेरे पास मूल रूप से वही सेटअप (ब्राउज़र + ओएस) है जिसने लेख लिखा था। तो मैं वास्तव में इसका परीक्षण नहीं कर सकता।

तो ... क्या यूआरएल में यूटीएफ -8 अक्षरों का उपयोग करना सुरक्षित है?

और बोनस प्रश्न: यदि यह सुरक्षित है कि कितनी वेबसाइटें इसका उपयोग नहीं करती हैं?

+0

[यूआरएल में यूनिकोड वर्णों] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2742852/unicode-characters-in-urls) – Rafa

उत्तर

5

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

एकमात्र वास्तविक समस्या यह है कि पुराने ब्राउज़र (और ओएस) उन्हें कैसे दिखाते हैं। ब्राउज़र का समर्थन नहीं करने वाले ब्राउज़र यूआरएल में उन बदसूरत प्रतिशत एन्कोडेड वर्ण दिखाएंगे। यदि पुराने ब्राउज़र आपके लिए इसे एन्कोड नहीं करते हैं और उपयोगकर्ता लिंक (जो खराब है) का पालन नहीं कर सकता है तो आपको शायद एचटीएमएल के अंदर यूआरएल को प्रतिशत-एन्कोड करना होगा। आधुनिक ब्राउज़र एड्रेसबार में डीकोडेड यूआरएल दिखाते हैं, लेकिन अनुरोध भेजने के लिए एन्कोडेड संस्करण का उपयोग करते हैं, इसलिए उपयोगकर्ता हमेशा सुंदर यूनिकोड वर्ण देखता है।

+0

मैं इस उत्तर से सहमत हूं। ब्राउज़र समर्थन के लिए यह प्रश्न संबंधित है: http://stackoverflow.com/questions/7962110/browser-support-unicode-url – enyo

+5

यह निश्चित रूप से 'सुरक्षित' नहीं है।यूआरएल-एन्कोडेड यूटीएफ -8 अक्षरों का उपयोग करने के लिए कोई मानक नहीं है और गैर-असीसी अक्षरों के लिए वर्ण सेट निर्दिष्ट करने का कोई तरीका नहीं है। आप जो भी यूआरएल-एन्कोडेड पात्रों को आप पसंद करते हैं, उनका उपयोग करने के लिए स्वतंत्र हैं, लेकिन कोई गारंटी नहीं है कि कोई ब्राउज़र किसी भी विशेष तरीके से उन्हें व्याख्या या प्रदर्शित करेगा, और आश्चर्य की बात नहीं है, वाईएमएमवी। – Synchro

+1

अच्छा बिंदु। मैं वास्तव में यूएसआईआई के अलावा वर्ण एन्कोडिंग के बारे में यूआरएल, यूआरआई, या आईआरआई स्पेक में कुछ भी नहीं पा सकता हूं। – Gerben

-6

यूटीएफ -8 अभी भी जाने का लंबा सफर तय कर चुका है ... निश्चित रूप से सुरक्षित नहीं है।

और सांस्कृतिक रूप से, मुझे यह पसंद है। मैं चीनी अक्षरों से बने यूआरएल पते को लिखने/याद रखने की कल्पना नहीं कर सकता, या वे वही कर रहे हैं।

+0

आपको किसी URL के क्वेरी भाग को कब याद रखना होगा? वह यूटीएफ 8 डोमेन नामों के बारे में बात नहीं कर रहा है (जो बीटीडब्ल्यू भी है: http: //www.öbb.at) - इसलिए यह मानना ​​सुरक्षित है कि किसी को भी मैन्युअल रूप से वर्णों को टाइप नहीं करना होगा। – enyo

1

IDN का समर्थन करने वाले किसी भी ब्राउज़र के साथ यह संभव है।

हालांकि, IDN अच्छी तरह से अलग वेब सर्वर और प्रॉक्सी और अन्य इंटरनेट बुनियादी ढांचे पर समर्थित नहीं है, इसलिए अधिकांश साइटों इसे समर्थन नहीं कर सकते हैं और सुनिश्चित करें कि लोग उन्हें प्राप्त कर सकते हैं हो सकता है ...

और, जैसा कि @Rook का मानना ​​है कि इस तरह यूटीएफ -8 का उपयोग करने के साथ सुरक्षा समस्याएं हैं (उदाहरण के लिए एक्सएसएस)।

+0

क्या आपके पास यूटीएफ -8 और एक्सएसएस के बारे में कोई उदाहरण है ?! – Chris

+0

@ क्रिस - इसे पढ़ें: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) – Oded

+0

प्रॉक्सी के बुनियादी ढांचे में आईडीएन के साथ समस्याएं कैसे हो सकती हैं। डोमेन नाम punicode के कनवर्टर हैं जो पुराने डोमेन नामों के साथ 100% संगत है। पथ के अंदर यूनिकोड प्रतिशत बाइट द्वारा एन्कोडेड बाइट हैं। प्रतिशत एन्कोडिंग HTTP जितनी पुरानी है इसलिए हर सिस्टम पर काम करना चाहिए। हो सकता है कि कुछ वेबसर्वर को इसके साथ परेशानी हो, विशेष रूप से नक्शा फ़ाइल सिस्टम से यूआरएल करता है जो यूनिकोड फ़ाइल नामों का समर्थन नहीं कर सकता है। – Gerben

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