2010-08-30 15 views
13

मेरे पास uClinux के साथ एक छोटा एम्बेडेड डिवाइस है। एक बोआ वेब-सर्वर है, जो CGI स्क्रिप्ट का समर्थन करता है। मुझे बुनियादी गतिशील पृष्ठ बनाने की आवश्यकता है। रूपों के लिएसी/सी ++ सीजीआई एम्बेडेड डिवाइस, पोस्ट, जीईटी, लॉग इन पर?

आवश्यकताओं

  • नेविगेशन के लिए GET विधि
  • POST पद्धति प्रमाणीकरण

के लिए

  • प्रवेश मैं इस पृष्ठ http://www.cs.tut.fi/~jkorpela/forms/cgic.html कैसे प्राप्त और POST पद्धति लागू करने के लिए वहाँ वर्णन किया गया है पाया ।

    लेकिन लॉगिन और उपयोगकर्ताओं के बारे में क्या? लिनक्स से लॉगिन नाम और पासवर्ड का उपयोग करना संभव है? क्या आपके पास http प्रमाणीकरण को कार्यान्वित करने का एक उदाहरण है?

    या बेहतर इस्तेमाल इस cgi C++ पुस्तकालय है? http://www.gnu.org/software/cgicc/

    मुझे इसका कोई अनुभव नहीं है, धन्यवाद।

  • +0

    cgicc अच्छी तरह से काम करता है। यह सुनिश्चित करने के लिए कि आपके पास बफर ओवरफ़्लो भेद्यताएं नहीं हैं, सुनिश्चित करने के लिए आपके पास नवीनतम संस्करण है। – Jay

    उत्तर

    0

    मैं भी एक एम्बेडेड डिवाइस पर सी में सीजीआई चल रहा हूँ और यूजीन एरिक किम ने cgihtml खुला स्रोत पुस्तकालय का उपयोग कर।

    अब तक यह पद के लिए अच्छी तरह से काम करते हैं और तरीकों प्राप्त करने के लिए लगता है। मैंने प्रमाणीकरण के लिए इसका इस्तेमाल नहीं किया है।

    http://www.eekim.com/software/cgihtml/index.html

    0

    मुझे लगता है कि आप प्रमाणीकरण जानकारी स्टोर करने के लिए या तो URL पैरामीटर या कुकीज़ का उपयोग कर सकते हैं। कुकीज को स्टोर करने के तरीके के लिए HTTP प्रोटोकॉल का संदर्भ लें।

    0

    मुझे यकीन नहीं है कि आपका लिनक्स वितरण पर्ल का समर्थन करता है या नहीं। मैंने हाल ही में एंगस्ट्रॉम एंबेडेड लिनक्स के लिए पर्ल और बीओए वेब सर्वर का उपयोग कर एक सीजीआई एप्लीकेशन विकसित किया है।

    आप इसके लिए perl CGI मॉड्यूल का उपयोग कर सकते हैं।

    2

    या आप http://www.gnu.org/software/libmicrohttpd/ (इस्तेमाल कभी नहीं किया है, लेकिन गूगल पर संदर्भ uClinux-जिले में देखते हैं) की कोशिश कर सकते हैं।

    +0

    मैं libmicrohttpd का उपयोग करता हूं। यह मूल रूप से एक HTTP (एस) सर्वर है जिसे आप एम्बेडेड डिवाइसों में उपयोग करने में सक्षम होना चाहिए। – Keith

    -1

    तुम सिर्फ thttpd कोशिश कर सकते हैं या LightHTTPd इस puropose सेवा करने के लिए, एक कस्टम सी ++ लेखन वेबसर्वर, सबसे अच्छा समाधान है अगर यू न ज्यादा कार्यक्षमताओं है पर ... यू सिर्फ http://www.jbox.dk/downloads/webserver.c इस कार्यान्वयन को देख के साथ शुरू कर सकते हैं और देख जा करने के लिए अपनी कस्टम जरूरतों का समर्थन करने के लिए इसे बढ़ाएं। यदि आप वेबसर्वर में गतिशील वेब पेज होस्टिंग सुविधाओं की योजना नहीं बना रहे हैं।

    सादर, माइक

    +0

    सवाल स्पष्ट रूप से कहता है कि गतिशील पृष्ठों की आवश्यकता है। –

    0

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

    आपके सीजीआई प्रोग्राम तब सत्र स्थिति तालिका का संदर्भ ले सकते हैं यह देखने के लिए कि लॉग-इन उपयोगकर्ता से दिया गया अनुरोध आ रहा है, वह उपयोगकर्ता कौन है, और उनके पास कौन सी अनुमतियां हैं।

    सुरक्षा कारणों से, आपको सत्र आईडी क्लाइंट-साइड को एक कुकी में एक GET स्ट्रिंग के बजाय स्टोर करना चाहिए। सुनिश्चित करें कि आपका सत्र आईडी सबसे अच्छा है जितना आप कर सकते हैं।

    संपादित करें: सत्र स्थिति तालिका के लिए आपकी सबसे अच्छी शर्त या तो आप MySQL/PostgreSQL हो, यदि आप इसका उपयोग कर रहे हैं, या शायद एक छोटे सी प्रोग्राम के साथ आईपीसी जिसे आप विशेष रूप से उस उद्देश्य के लिए लिखते हैं, या तो अंतर्निहित घर- उगाई गई डेटा संरचना या SQLite

    0

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

    http://en.wikipedia.org/wiki/Digest_access_authentication

    प्रमाणीकरण इस तरह ब्राउज़र जानकारी के लिए एक छोटे से पॉप अप विंडो के बजाय एक HTML फ़ॉर्म होने से है। यह स्पष्ट नहीं है कि आप किस प्रकार के लॉगिन तंत्र के बाद हैं।

    0

    मैं का प्रयोग करेंगे http://webtookit.eu

    वे अपने ऐप्स के लिए FastCGI तैनाती मोड प्रदान करते हैं: http://www.webtoolkit.eu/wt/doc/reference/html/overview.html#fastcgi

    या एक वेबसर्वर में बनाया (ताकि आप संभवतः बोआ खाई सकता): http://www.webtoolkit.eu/wt/doc/reference/html/overview.html#wthttpd

    और हाल ही में प्रमाणीकरण जोड़ा गया: http://www.webtoolkit.eu/wt/doc/reference/html/group__auth.html#details

    -1

    डाउनलोड स्क्विड कैश सर्वर, यह सी के साथ एक अच्छी सुरक्षित और तेज़ सीजीआई है।

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