Repository navigation
Security hi
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
यह पेज बताता है कि सुरक्षा समस्या की रिपोर्ट कैसे करें, और जब आपका ऐप यूज़र इनपुट docxi को देता है तब सुरक्षा से जुड़ी किन बातों को जानना चाहिए।
कृपया सुरक्षा समस्याओं की रिपोर्ट सार्वजनिक issue में न करें। इसके बजाय docxi.gemspec में दिए गए रखरखाव वाले ईमेल पतों पर लिखें। docxi का वर्शन और समस्या दोहराने का एक छोटा तरीका ज़रूर बताएं।
docxi 0.0.x इमेज पाथ की स्ट्रिंग Kernel#open को देता है। Kernel#open, | से शुरू होने वाली स्ट्रिंग को शेल कमांड की तरह चलाता है, इसलिए जिसके नियंत्रण में इमेज पाथ हो, वह आपके सर्वर पर कमांड चला सकता है। 0.1.0 फ़ाइलें File.open से खोलता है और URL URI#open से डाउनलोड करता है। इनमें से कोई भी कमांड नहीं चलाता।
टेक्स्ट देना सुरक्षित है। टेक्स्ट, टेबल का कंटेंट और दूसरी स्ट्रिंग XML टेक्स्ट या एट्रिब्यूट मान के रूप में लिखी जाती हैं, जिन्हें nokogiri एस्केप करता है। यूज़र इनपुट डॉक्यूमेंट में एलिमेंट नहीं जोड़ सकता।
इमेज सोर्स में सावधानी चाहिए। add_media ये स्वीकार करता है:
| सोर्स | docxi क्या करता है |
|---|---|
| आपका खोला हुआ IO | उसे पढ़ता है |
| फ़ाइल पाथ | आपके सर्वर की डिस्क से वह फ़ाइल पढ़ता है |
http, https या ftp URL |
आपके सर्वर से उसे डाउनलोड करता है |
अगर यूज़र पाथ चुन सकता है, तो वह आपके सर्वर की कोई भी पढ़ने लायक फ़ाइल, जैसे कॉन्फ़िगरेशन या की, डॉक्यूमेंट में शामिल करवा सकता है। अगर यूज़र URL चुन सकता है, तो आपका सर्वर उसे रिक्वेस्ट करेगा, जिससे अंदरूनी पतों तक पहुंचा जा सकता है (सर्वर-साइड रिक्वेस्ट फ़ोर्जरी, SSRF)। अपना खोला हुआ IO दें, या सिर्फ़ जाने-पहचाने पाथ और होस्ट की अनुमति दें।
हाइपरलिंक वहीं ले जाते हैं जहां URL कहता है। यूज़र के दिए URL को add_hyperlink को देने से पहले जांच लें।
- रिलीज़ GitHub Actions से RubyGems की ट्रस्टेड पब्लिशिंग (trusted publishing) के ज़रिए प्रकाशित होती हैं, इसलिए रिपॉज़िटरी में कोई API की नहीं रखी जाती।
- gem मेटाडेटा
rubygems_mfa_requiredसेट करता है, इसलिए निजी API की से किए गए पुश के लिए मल्टी-फ़ैक्टर ऑथेंटिकेशन ज़रूरी है।
docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages