यह असुरक्षित है, क्योंकि CURL मूलभूत प्रमाणीकरण के लिए चूक करता है जहां HTTP प्रोटोकॉल आपके पासवर्ड को स्पष्ट पाठ में भेजता है। जब आप username:password
स्ट्रिंग निर्दिष्ट करते हैं , तो यह HTTP हेडर में BASE64 स्ट्रिंग में परिवर्तित हो जाती है :
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
कोई भी आपके HTTP ट्रैफ़िक (आपका प्रदाता, आपके जैसे ही वायरलेस AP तक पहुँचने वाला कोई भी व्यक्ति) को इंटरसेप्ट करने में सक्षम होगा, बस ऑनलाइन BASE64 कनवर्टर का उपयोग करके पासवर्ड को पुनर्प्राप्त करने में सक्षम होगा ।
एचटीटीपीएस प्रोटोकॉल इस हेडर को भेजने से पहले एक एन्क्रिप्टेड कनेक्शन स्थापित करके चीजों को बेहतर बनाएगा, जिससे पासवर्ड का पता चल सके। हालाँकि, यह केवल तभी लागू होता है जब अज्ञात प्रमाणपत्रों की पुष्टि करने के लिए उपयोगकर्ता ध्यान देता है, सुरक्षा अपवादों को अधिकृत करता है और इसी तरह।
ध्यान दें कि एक ही मशीन पर अन्य उपयोगकर्ताओं के लिए कमांड तर्क उपलब्ध हो सकते हैं, उदाहरण के लिए ps -ef
, / फाइल सिस्टम की खरीद, आप इतिहास को तोड़ते हैं, और अपने टर्मिनल लॉग में (@ लैम्बर्ट की टिप्पणी के लिए धन्यवाद)। कुछ प्लेटफार्मों पर cURL पासवर्ड को छिपाने का प्रयास करता है, उदाहरण के लिए ps -ef
आपके साथ पासवर्ड के बजाय रिक्त स्थान देखने की संभावना है। हालाँकि, पासवर्ड को कमांड लाइन तर्क के रूप में पारित करने के बजाय, सीधे पासवर्ड के लिए cURL होने से बेहतर है, जैसा कि cURL faq पर चर्चा की गई है ।