6

का उपयोग करके स्वत: लॉगिन करने के लिए GreaseMonkey स्क्रिप्ट में मेरे पास मेरे काम पर लिखा गया कुछ ग्रीसमोन्की स्क्रिप्ट है जो स्वचालित रूप से मुझे यहां मौजूद आंतरिक साइटों में लॉग इन करती है। मैंने अपने टाइम शीट एप्लिकेशन को छोड़कर इन साइटों में से प्रत्येक के लिए एक स्क्रिप्ट लिखने में कामयाब रहा है, जो HTTP प्रमाणीकरण का उपयोग करता है।HTTP प्रमाणीकरण

क्या कोई तरीका है कि मैं इस साइट में स्वचालित रूप से लॉग इन करने के लिए GreaseMonkey का उपयोग कर सकता हूं?

संपादित करें: मुझे ब्राउज़र में स्टोर पासवर्ड कार्यक्षमता के बारे में पता है, लेकिन मेरी स्क्रिप्ट यह जांचकर एक कदम आगे जाती हैं कि क्या मैं साइट पर लॉग इन करता हूं (HTML को ट्रैवर्स करके) और फिर लॉगिन पर एक पोस्ट सबमिट कर रहा हूं पृष्ठ। यह साइट को लोड करने, लॉगिन पेज दर्ज करने, मेरे क्रेडेंशियल्स में प्रवेश करने, फिर सबमिट करने के लिए

उत्तर

6

"प्राधिकरण" HTTP शीर्षलेख सेट करके HTTP प्रमाणीकरण का उपयोग करके लॉग इन करना संभव है, इस शीर्षलेख के मान को स्ट्रिंग "मूल उपयोगकर्ता नाम: पासवर्ड" पर सेट किया गया है, लेकिन "उपयोगकर्ता नाम: पासवर्ड" भाग के साथ स्ट्रिंग बेस 64 एन्कोडेड।

http://frontier.userland.com/stories/storyReader$2159

पाया शोध कि GreaseMonkey यह में निर्मित आ समारोह है जहां सर्वर GM_xmlhttpRequest

कहा जाता है के लिए मिलता है/पोस्ट अनुरोध भेज सकते हैं के बारे में थोड़ी

http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html

तो यह सब एक साथ डाल (और स्ट्रिंग को बेस 64 में बदलने के लिए यह जावास्क्रिप्ट कोड भी प्राप्त कर रहा है मुझे निम्नलिखित

http://www.webtoolkit.info/javascript-base64.html

var loggedInText = document.getElementById('metanav').firstChild.firstChild.innerHTML; 
if (loggedInText != "logged in as jklp") { 
    var username = 'jklp'; 
    var password = 'jklpPass'; 
    var base64string = Base64.encode(username + ":" + password); 

    GM_xmlhttpRequest({ 
     method: 'GET', 
     url: 'http://foo.com/trac/login', 
     headers: { 
      'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3', 
      'Accept': 'application/atom+xml,application/xml,text/xml', 
      'Authorization':'Basic ' + base64string, 
     } 
    }); 
} 

तो जब मैं अब साइट पर जाएँ, यह डोम को पार करता और अगर मैं में लॉग इन नहीं कर रहा हूँ, यह पूर्ण रूप से अपने में मुझे लॉग करता है।

1

फ़ायरफ़ॉक्स का उपयोग क्यों नहीं करता (मुझे लगता है कि आप फ़ायरफ़ॉक्स का उपयोग कर रहे हैं) का उपयोग करके अपने क्रेडेंशियल्स को याद रखने के लिए पासवर्ड प्रबंधक?

मुझे यह लिंक मिला: HTTP Authentication with HTML Forms। ऐसा लगता है कि आप HTTP प्रमाणीकरण करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं। मुझे नहीं लगता कि जब आप पहली बार यूआरएल पर जा रहे हैं तो आप Greasemonkey को बाधित कर सकते हैं। आपको किसी प्रकार का लॉन्चिंग पॉइंट सेट करना पड़ सकता है जिसका उपयोग आप greasemonkey को स्वचालित रूप से रीडायरेक्ट + लॉगिन करने के लिए कर सकते हैं। उदाहरण के लिए, आपके पास स्थानीय पृष्ठ हो सकता है जो क्वेरी स्ट्रिंग में गंतव्य यूआरएल लेता है, Greasemonkey स्वचालित रूप से प्रमाणीकरण + रीडायरेक्ट करता है। एकमात्र समस्या यह है कि आपको अपने बुकमार्क पेज के साथ साइट बुकमार्क्स को उन बुकमार्क के लिए लपेटना होगा जिन्हें आप प्रवेश बिंदुओं के रूप में उपयोग करते हैं।

1

HTTP प्रमाणीकरण जानकारी प्रत्येक अनुरोध पर भेजी जाती है, न केवल लॉग इन करने के लिए। ब्राउजर पहली बार लॉग इन करने के बाद सत्र के लिए लॉगिन जानकारी को कैश करेगा। तो, क्या तुम सच में अगर आप पहले से प्रवेश कर रहे हैं की जाँच करने की कोशिश करके कुछ भी नहीं सहेजते

तुम भी पूरी तरह के बारे में Greasemonkey भूल सकता है और सिर्फ इसलिए की तरह यूआरएल पर में अपनी प्रवेश दे:।

http://username:[email protected]/ 

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

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