क्या मैं किसी URL के लिए फ़ायरफ़ॉक्स लोकलस्टोरेज डेटा प्राप्त कर सकता हूं जो अब मौजूद नहीं है?


2

एक अजीब सवाल की तरह, लेकिन यहाँ बुनियादी स्थिति है।

कुछ समय पहले मैंने एक आंतरिक कॉर्पोरेट नेटवर्क पर कुछ सहकर्मियों द्वारा उपयोग के लिए एक बुनियादी लिटिल टूडू ऐप लिखा था, और मैं इसे एक साझा ड्राइव पर होस्ट कर रहा था। वेब सर्वर सेट किए बिना दृढ़ता के लिए, उपयोगकर्ता का डेटा ब्राउज़र के लोकलस्टोरेज में संग्रहीत किया जा रहा था।

हाल ही में, SysAdmins नेटवर्क ड्राइव एड्रेसिंग सिस्टम को फिर से काम कर रहा है, जिसके परिणामस्वरूप मेरे छोटे ऐप के लिए URL में बदलाव हुआ है। बेशक, इसका मतलब यह है कि पेज पर अब एक ही लोकलस्टोरेज ओब्जेक्ट का एक्सेस नहीं है, और जो कोई भी मेरे ऐप का इस्तेमाल कर रहा है, उसने अब अपना डेटा खो दिया है, भले ही यह अभी भी फ़ायरफ़ॉक्स द्वारा कहीं स्टोर किया गया हो। (हम सब उपयोग कर रहे हैं फ़ायरफ़ॉक्स ३१ पर विंडोज 7 मामले में जो कुछ भी बदलता है।)

तो सवाल यह है कि क्या मैं उस लोकलस्टोरेज डेटा को पुनः प्राप्त कर सकता हूं? मेरा पहला विचार, कीचड़ हालांकि यह है, एक उपयोगकर्ता को उनके लिए एक प्रविष्टि जोड़ना था hosts पुरानी URL को किसी अन्य फ़ाइल को इंगित करने के लिए फ़ाइल जो डेटा निर्यात करेगी (या, उस मामले के लिए, एक तुच्छ फ़ाइल को इंगित करें और डेटा को वेब कंसोल में मैन्युअल रूप से हड़पें)। लेकिन, जैसा कि आपने अनुमान लगाया होगा, hosts फ़ाइल बंद है और हमारे पास व्यवस्थापक अधिकार नहीं हैं।

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

विचार?

जवाबों:


3

पोस्टीरिटी के लिए, मैंने पाया कि लोकलस्टोरेज डेटा को एक साइक्लाइट फाइल में संग्रहीत किया जाता है जिसे कहा जाता है webappsstore.sqlite अपने फ़ायरफ़ॉक्स प्रोफ़ाइल निर्देशिका में। विंडोज पर, यह पाया जा सकता है %APPDATA%\Mozilla\Firefox\Profiles\{profile ID}\webappsstore.sqlite। इसकी सामग्री को पढ़ने के लिए मैंने थोड़ी सी पायथन स्क्रिप्ट का उपयोग किया जो उपयोग करता है sqlite3 पैकेज:

import os, sqlite3
profiles = os.path.join(os.environ('APPDATA'),'Mozilla\\Firefox\\Profiles')
profile = os.path.join(profiles, os.listdir(profiles)[0])
db = os.path.join(profile,'webappsstore.sqlite')
print([entry.encode('utf-8') for entry in sqlite3.connect(db).iterdump()])

(मैंने पायथन 3 का उपयोग किया, निश्चित नहीं कि यदि साइक्लाइट 3 के पायथन 2 संस्करण में अंतर हैं)।

यह बहुत सारे डेटा का उत्पादन करेगा; मैं एक फ़ाइल में रीडायरेक्ट करने की सलाह देता हूं। डेटा SQL डेटा निर्माण विवरणों में होगा। स्थानीय भंडारण में प्रत्येक प्रविष्टि में एक तालिका में इसके साथ जुड़ा एक डोमेन और कुंजी है। URL हमेशा डेटाबेस में पीछे की ओर लिखा जाता है। आप निम्नलिखित जैसा कुछ खोज रहे हैं:

INSERT INTO "webappsstore2" VALUES('moc.elpmaxe.www.:https:443','myLocalStorageKey','{"key":"value","pairs":["go","here"]}')

आपको आउटपुट में कहीं भी अपने लोकलस्टोरेज के-वैल्यू जोड़े मिलेंगे।


! rewsna lufesu siht rof sknahT
Cryptopat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.