2015-05-18 8 views
8

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

http://www.somewebsite.com/send.php?title=hello&name=john&contact=email 

अब ऊपर के साथ समस्या यह है कि जो कोई यूआरएल की पहुंच है, आसानी से आदि स्पैम के साथ डेटाबेस भी कई प्रस्तुतियाँ, बौछार कर सकते हैं यह बहुत ही असुरक्षित महसूस करता है: URL नीचे संरचना इस प्रकार है। इस प्रक्रिया को यथासंभव सुरक्षित बनाने के लिए मेरा दृष्टिकोण क्या होना चाहिए?

PHP के साथ मेरा वर्तमान ज्ञान स्तर केवल "काम पूरा करने" के तरीकों का उपयोग करके कार्यों को पूरा करने में सक्षम है (भले ही वे कितने सुरक्षित हैं), लेकिन अब मैं उस बिंदु पर पहुंचना शुरू कर रहा हूं जहां मैं दिमाग में सुरक्षा, सुरक्षा, आदि रखने की जरूरत है। सहायक सलाह/अंतर्दृष्टि की सराहना की जाएगी। धन्यवाद!

+0

इसे पढ़ें http://stackoverflow.com/questions/15273705/security-when-using-rest-api-in-an-iphone-application/15277589#15277589 –

+0

http://stackoverflow.com/questions/14452137/safe-api-for-ios-without-user-account –

+0

क्या आपके उपयोगकर्ताओं के पास आपके ऐप (या अंतर्निहित सर्वर) खाते हैं? इससे कार्य बहुत आसान हो जाता है। – halfer

उत्तर

3

यह सुरक्षित करने का सबसे अच्छा तरीका है OAuth2 प्रमाणीकरण परत के पीछे अपने सर्वर-साइड घटकों (यानी PHP भाग) को लॉक करना। मैं इस उद्देश्य के लिए व्यक्तिगत रूप से this OAuth2 Server की अनुशंसा करता हूं। क्योंकि इस कुछ भी प्रमाणित नहीं करता

1. Send an API key/username/password/etc to an API endpoint (i.e. a URL) 
2. Get a token, store it in memory for future use 
3. Send this token on subsequent requests 

यह समाधान डेटा की एक हैश (जैसे MD5) भेजने के लिए बेहतर है,:

सामान्य कार्यप्रवाह इस तरह होगा। यह अंतर्निहित समस्या को भी छिपाने के बजाय संबोधित करता है (उदाहरण के लिए जीईटी के बजाय POST आपके संचार को सुरक्षित करने के लिए कुछ भी नहीं करता है)। हालांकि, OAuth2 गोपनीयता प्रदान नहीं करता है। बीच में एक आदमी अभी भी आपके अनुरोधों को देख/उलझा सकता है।

अपने उपयोगकर्ताओं की बेहतर सुरक्षा के लिए आपको अपने ऐप पर HTTPS (PFS के साथ TLSv1.2) का उपयोग करना चाहिए। विशेष रूप से। एक पोर्ट 80 HTTP सर्वर भी नहीं है जो आपके HTTPS सर्वर पर रीडायरेक्ट करने से कहीं अधिक कुछ करता है। आईओएस उनका समर्थन करता है, तो HSTS और HPKP शीर्षलेख भी भेजें।

यदि आपको HTTPS + OAuth2 ऑफ़र की तुलना में बेहतर सुरक्षा की आवश्यकता है, तो मैं learning application security पूर्णकालिक सुझाव देता हूं क्योंकि अधिक विस्तृत और जटिल समाधान केवल तभी समझेंगे जब आपके पास इस विषय पर बहुत अधिक जानकारी हो। (अपने threat model पर निर्भर करता है, निश्चित रूप से!)

उदाहरण के लिए, एक हमलावर के खिलाफ रक्षा बस जो अपने कार्यप्रवाह पेचीदा और संभवतः उन्हें करने के लिए नहीं है, हार्ड-कोडेड API कुंजियां ठीक करने के लिए अपने अनुप्रयोग इंजीनियरिंग रिवर्स की आवश्यकता है प्रत्येक उपयोगकर्ता के सत्यापन ।

+1

अच्छी सलाह लेकिन सुरक्षा के बारे में सीखना एक बड़ा विषय है। यदि ओपी चाहता है कि असली सुरक्षा एक डोमेन विशेषज्ञ को किराए पर लेती है। यदि ओपी केवल सुरक्षा की उपस्थिति में रुचि रखता है - कैनरी-ऑन। – zaph

+0

जानकारी के लिए बहुत बहुत धन्यवाद। PHP सुरक्षा अब दायरे में बहुत गहरी दिखाई दे रही है।जो आपने ऊपर उल्लिखित किया है वह मेरे उद्देश्यों के लिए पर्याप्त से अधिक होगा। बाद में, मुझे कुछ और उन्नत tpoics में देखने की आवश्यकता होगी हालांकि। धन्यवाद। – Vimzy

+0

@zaph निश्चित रूप से, लेकिन मेरा मानना ​​है कि सुरक्षा शिक्षा को और अधिक सुलभ बनाना समाज के लिए एक अच्छी बात है। (यदि कोई डोमेन विशेषज्ञ किराए पर लेना चाहता है, तो मैं निश्चित रूप से [मेरी कंपनी] (https://paragonie.com) के माध्यम से उपलब्ध हूं!: पी) –

-2

अपने पैरामीटर पर एक उपयोगकर्ता नाम/पासवर्ड और कुंजी जोड़ें। अपना खुद का संयोजन बनाएं (यदि संभव हो तो एन्क्रिप्ट करें) तो हमेशा इसे पहले जांचें ताकि प्रक्रिया कम हो जाएगी।

यदि प्रमाण पत्र जहां प्रक्रिया को गलत तरीके से रोकते हैं।

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