2013-09-25 6 views
11

मैं अपना प्ले एप्लिकेशन सुरक्षित करने की कोशिश कर रहा हूं लेकिन मुझे नहीं पता कि कहां से शुरू करना है। ट्यूटोरियल में मुझे उस विषय के बारे में कोई अध्याय नहीं मिला है। जहां तक ​​मुझे लगता है कि सुरक्षा संस्करण प्ले संस्करणों के बीच बदल रहा है। तो आप अपने आवेदनों को सुरक्षित करने के लिए क्या उपयोग कर रहे हैं। मैं Play में नया हूं इसलिए कृपया मुझे माफ़ कर दो अगर मैं स्पष्ट प्रश्न पूछ रहा हूं।प्ले में सुरक्षा 2.2.x

संपादित करें: ठीक है, मैबी सवाल पर्याप्त स्पष्ट नहीं था (मुझे इसके बारे में वास्तव में खेद है)। सुरक्षा के बारे में बात करते समय मेरा मतलब है कि मुझे उपयोगकर्ताओं के क्रेडेंशियल्स और टूल से निपटने के लिए कुछ चाहिए जो मुझे कुछ पृष्ठों तक पहुंच प्रतिबंधित करने और अंततः मेरे आवेदन में कुछ बाकी कार्यों के लिए अनुमति देता है।

EDIT2: मैं अब deadbolt2 कोशिश करता हूँ और यह कैसे काम करता है करता है हम देखेंगे। लेकिन मैं अभी भी आपको लोगों के साथ Play सुरक्षा के बारे में अपना ज्ञान साझा करने के लिए प्रोत्साहित करता हूं :)

+0

आप से क्या मतलब है आपके आवेदन को सुरक्षित? कुछ पृष्ठों में पासवर्ड सुरक्षा जोड़ना? एक पूरे फ़ोल्डर को सुरक्षित रखें? एसक्यूएल इंजेक्शन, क्रॉस-साइट स्क्रिप्टिंग, जैसे सुरक्षा समस्याओं से बचें ...? – ffarquet

+0

वास्तव में प्रश्न के आधार पर उत्तर हैं: 1) सत्र, कुकीज़, ... 2) htaccess 3) प्ले फ्रेमवर्क इस तरह से चीजों से बचेंगे यदि आप इसे सही तरीके से उपयोग करते हैं – ffarquet

+0

आपके पास दो संभावनाएं हैं: [फ़िल्टर] परिभाषित करें (http : //www.playframework.com/documentation/2.2.x/ScalaHttp फ़िल्टर) या स्वयं की कार्रवाई - देखें @Mikesname उत्तर –

उत्तर

4

प्रलेखन अभी भी इस विषय पर थोड़ा कमजोर प्रतीत होता है, लेकिन अनिवार्य रूप से, प्रमाणीकरण/प्रमाणीकरण कार्यक्षमता आमतौर पर क्रिया संरचना का उपयोग करके किया जाता है, जो कि है प्ले में पुन: प्रयोज्य नियंत्रक कोड का आधार। वहाँ एक उदाहरण here (भी docs से जुड़ा हुआ है कि आप सामान्य विचार दे मदद करनी चाहिए।) प्ले 2.2.x में

कार्रवाई रचना ActionBuilders उपयोग किया जाता है। ये एक ब्लॉक लेते हैं जो अनुरोध स्वीकार करता है और Future[SimpleResult] देता है। यह क्रिया बिल्डर या तो दिए गए ब्लॉक निष्पादित या वापसी एक अलग Future[SimpleResult] (जैसे कि, मामले, जो उपयोगकर्ता की साख की जाँच नहीं की थी में एक Unauthorized।)

हमारे एप्लिकेशन में हम प्रमाणीकरण से निपटने के लिए Play2-auth मॉड्यूल का उपयोग करने की अनुमति देता सत्र कुकीज़ के साथ। यह (2.2) को Play 2.2.x के साथ काम करने के लिए अपडेट किया गया है लेकिन एक्शन कंपोज़िशन (stackable controllers) के लिए थोड़ा अलग तंत्र का उपयोग करता है।) आप यह सुनिश्चित करने के लिए सबसे अच्छा हो सकता है कि आपको आवश्यक सटीक कार्यक्षमता कैसे पहले मूल फ्रेमवर्क टूल का उपयोग करके पूरा किया जा सकता है इसमें निर्भरता जोड़ना

+0

आपके उत्तर के लिए धन्यवाद। मेरे पास Play2-auth के बारे में सिर्फ लाल है और वे कहते हैं कि deadbolt2 जावा के लिए है और Play2-auth स्केल के लिए है लेकिन यह सच नहीं है। डेडबॉल्ट 2 स्केल के लिए भी है। तो मैं उस (deadbolt2) के साथ कोशिश करूंगा और हम देखेंगे कि यह कैसे काम करता है। – user1887701

1

एक्सेस कंट्रोल, सुरक्षा इत्यादि एक बहुत व्यापक विषय है, क्योंकि इसका संदर्भ संदर्भ के आधार पर बहुत अलग चीजें हैं। यह कारणों में से एक हो सकता है कि Play के लिए इसके लिए थोड़ा प्रलेखन क्यों है, जिसने मुझे शुरुआत में भी परेशान किया।

Play2 कुछ security helpers अर्थात् यह, Authenticated विधि है कि यह कैसे उपयोग करने के लिए, स्रोत कोड में टिप्पणी की जाँच के बारे में कुछ अंतर्दृष्टि के लिए किया गया है। यह एक आसान तरीका है जिसे आप स्वयं लागू कर सकते हैं, और अधिकांश करते हैं। यह अनिवार्य रूप से, केवल एक संरचना का प्रस्ताव करता है कि आपके तरीकों को कहां रखा जाए, जो जांच करेगा कि अनुरोध प्रमाणित है या नहीं, और यदि ऐसा नहीं है तो क्या करना है।

प्ले 2 में कुछ क्रिप्टोग्राफी तर्क भी हैं, जिनका उपयोग कुकीज़ पर हस्ताक्षर करने के लिए किया जाता है।

इसके बारे में, आपके पास पहले से निर्मित सुरक्षा संरचनाएं नहीं हैं, लेकिन यह एक अच्छी बात है, क्योंकि आप नहीं चाहते हैं कि ढांचे आपके लिए ऐसे निर्णय लेते हैं, अगर यह नहीं पता कि क्या संदर्भ का उपयोग किया जाएगा।

क्या आवश्यक है जाने के लिए और अनुसंधान अपने एप्लिकेशन में प्रासंगिक हमले किए जाते हैं, सर्वोत्तम प्रथाओं और इतने पर है। मैं ओडब्ल्यूएएसपी पर जाने की सलाह देता हूं, खासकर OWASP Cheat Sheets। यदि धोखा शीट्स की सूची the OWASP Top Ten Cheat Sheet के साथ डरावनी लगती है। बड़ी मात्रा में जानकारी को ध्यान में रखें, यह बहुत उपयोगी ज्ञान है।

2

मैं अन्य जवाब के साथ सहमत हैं, लेकिन बस को जोड़ने है कि मैं अन्य प्रमाणन प्रदाताओं (गूगल, अमेरिकन प्लान, आदि के साथ एकीकृत करने के लिए securesocial का उपयोग करें ...), इसलिए मुझे खुद को लिखना नहीं है। उठना और दौड़ना काफी आसान है।

https://github.com/jaliss/securesocial

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