2013-08-22 3 views
7

मैं एकल पृष्ठ निम्नलिखित ढेर का उपयोग कर आवेदन बनाने (यहाँ सुझाव के लिए खुले) की जांच कर रहा हूँसिंगल पेज एप्लिकेशन में कोणीय का उपयोग करके सुरक्षा और स्थानीयकरण?

  • कोणीय
  • JQuery
  • ASP.Net MVC 4
  • इकाई की रूपरेखा 5

मैं इस ढेर और कोणीय पर बहुत ज्यादा बेचा गया हूं लेकिन कुछ ऐसी चीजें हैं जिन्हें मैं अनिश्चित हूं। अलग-अलग उपयोगकर्ताओं की अलग-अलग भूमिकाएं होती हैं और हमें भूमिका के आधार पर पृष्ठों पर कुछ पृष्ठों और/या नियंत्रण को छिपाने/दिखाने में सक्षम होना चाहिए। मैं अधिक पारंपरिक वेब अनुप्रयोगों के लिए कुछ समाधानों से परिचित हूं लेकिन मुझे यकीन नहीं है कि जब मैं एक पृष्ठ एप्लिकेशन की बात करता हूं तो मैं कहां से शुरू करूंगा।

मैं एमवीसी आंशिक विचारों का उपयोग नहीं करने की उम्मीद कर रहा था बल्कि वेबएपी जैसे सर्वर कोड को केवल भेज और इलाज करता था। लेकिन फिर कोणीय को सभी टेम्पलेट्स को संभालना होगा और इसका मतलब यह होगा कि किसी को सामने के अंत में टेम्पलेट तक पहुंच होगी और उन कार्यों को कॉल करने में सक्षम हो सकता है जिन्हें वे नहीं करना चाहिए? या क्या मुझे वेबएपीआई तरीकों में भूमिका की जांच करनी चाहिए और यह सुनिश्चित करना चाहिए कि उनके पास सही भूमिका है?

अगली समस्या स्थानीयकरण है। हमें कई भाषाओं का समर्थन करने की आवश्यकता होगी। मैं उम्मीद कर रहा था कि हमारे पास अलग-अलग भाषा फाइलें हो सकती हैं, en_gb.XML और इसमें कुंजी और उनके विभिन्न अनुवाद होंगे। फिर यदि उपयोगकर्ता भाषा बदल मैं शायद सिर्फ कोणीय मान

angular.value("language", 'en_gb.js'); 

या

angular.value("language", 'en_gb.xml'); 

किसी और समस्याओं के इन प्रकार हल है शायद का उपयोग करने में कुछ बदलने के लिए सक्षम होगा।

उत्तर

4

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

एक तरह से इस लक्ष्य को हासिल करने के लिए प्रतिपादन (दोनों ng-include और ng-view समर्थन लोड हो रहा है सर्वर टेम्पलेट्स) के लिए ग्राहक के लिए वापसी सर्वर साइड टेम्पलेट्स (आंशिक दृश्य) होगा।सर्वर मान्य कर सकता है कि उपयोगकर्ता को विफलता पर खाली प्रतिक्रिया तक पहुंचने और वापस करने का अधिकार है या नहीं। तो लीक की गई जानकारी की कोई संभावना नहीं है।

सभी वेबपै कॉल के लिए एक समान चेक जोड़ा जा सकता है और उपयोगकर्ता को अनधिकृत स्थिति कोड वापस कर सकता है।

5

सुरक्षा: आपको एंगुलरजेएस को टेम्पलेट, आंशिक विचार आदि जैसे दृश्य में सबकुछ नियंत्रित करना चाहिए, क्योंकि एंगुलरजेएस एक पूर्ण-विशेषीकृत फ्रंट-एंड फ्रेमवर्क है। चूंकि यह केवल फ्रंट-एंड फ्रेमवर्क है, यह सर्वर डेटा के लिए ज़िम्मेदार नहीं है, इसलिए डेटा लाने/सहेजने/अपडेट/हटाने के लिए बस कुछ विश्वसनीय कॉल करें। और यह सुरक्षा के लिए भी ज़िम्मेदार नहीं है, इसलिए जिसे आप "वेबएपी" कहते हैं, सर्वर पक्ष पर 100% सुरक्षित होना चाहिए। इसलिए यदि कोई यह पता लगाने में सक्षम है कि उसे कौन सी कॉल करने की अनुमति नहीं है, तो कॉल सफल नहीं होगा, क्योंकि इसके प्रमाण-पत्र सर्वर-पक्ष में चेक किए जाएंगे। अभी भी दुर्भावनापूर्ण possibles हमले हैं, जिसके लिए AngularJS का जवाब है। कृपया http://docs.angularjs.org/api/ng के "सुरक्षा विचार" खंड देखें। $ Http।

स्थानीयकरण: AngularJS मुद्रा, दिनांक और संख्या के लिए स्थानीयकरण का समर्थन करता है। लेकिन आपके यूआई में स्ट्रिंग्स के लिए, लैंगेज में अभी तक कुछ भी नहीं बनाया गया है। आपको अपना जवाब बनाना है। AngularJS के साथ अनुवाद प्राप्त करने के कुछ प्रयास हैं, जैसे: https://github.com/firehist/grunt-angular-translate

+0

धन्यवाद। तो आपने इसके सुरक्षा हिस्से के बारे में अपने विचारों की पुष्टि की। बस वेबएपी में भूमिकाओं की जांच करें। भाषा की बात के लिए मुझे लगता है कि मैं अपना खुद का रोल करने की कोशिश करूंगा। शायद कारखानों और कुछ templating का उपयोग कर मैं इसे सही हो सकता है। लिंक के लिए धन्यवाद। अब इसे देखेंगे। – uriDium

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