प्रतिष्ठित वेब सेवाएँ - सुरक्षा

चूंकि Restful Web Services HTTP URL Path के साथ काम करती है, इसलिए Restful Web Service को उसी तरह सुरक्षित रखना बहुत जरूरी है, जिस तरह से एक वेबसाइट सुरक्षित है।

एक बेहतरीन वेब सेवा को डिजाइन करते समय पालन किए जाने वाले सर्वोत्तम अभ्यास निम्नलिखित हैं -

  • Validation- सर्वर पर सभी इनपुट मान्य करें। SQL या NoSQL इंजेक्शन हमलों के खिलाफ अपने सर्वर को सुरक्षित रखें।

  • Session Based Authentication - जब भी किसी वेब सेवा पद्धति से अनुरोध किया जाता है, तो उपयोगकर्ता को प्रमाणित करने के लिए सत्र आधारित प्रमाणीकरण का उपयोग करें।

  • No Sensitive Data in the URL - URL में उपयोगकर्ता नाम, पासवर्ड या सत्र टोकन का उपयोग कभी न करें, इन मूल्यों को POST विधि के माध्यम से वेब सेवा को पास किया जाना चाहिए।

  • Restriction on Method Execution- GET, POST और DELETE विधियों जैसे तरीकों के प्रतिबंधित उपयोग की अनुमति दें। GET विधि डेटा को हटाने में सक्षम नहीं होना चाहिए।

  • Validate Malformed XML/JSON - वेब सेवा पद्धति में उत्तीर्ण इनपुट के लिए अच्छी तरह से जाँच करें।

  • Throw generic Error Messages - वेब सेवा पद्धति में 403 जैसे HTTP त्रुटि संदेशों का उपयोग किया जाना चाहिए, ताकि प्रवेश वर्जित हो आदि।

HTTP कोड

अनु क्रमांक। HTTP कोड और विवरण

1

200

OK - सफलता दिखाता है।

2

201

CREATED- जब POST या PUT अनुरोध का उपयोग करके एक संसाधन सफलतापूर्वक बनाया जाता है। स्थान हेडर का उपयोग करके नए बनाए गए संसाधन से लिंक देता है।

3

204

NO CONTENT- जब रिस्पॉन्स बॉडी खाली हो। उदाहरण के लिए, एक DELETE अनुरोध।

4

304

NOT MODIFIED- सशर्त जीईटी अनुरोधों के मामले में नेटवर्क बैंडविड्थ के उपयोग को कम करने के लिए उपयोग किया जाता है। रिस्पांस बॉडी खाली होनी चाहिए। हेडर की तिथि, स्थान आदि होना चाहिए।

5

400

BAD REQUEST- बताता है कि एक अमान्य इनपुट प्रदान किया गया है। उदाहरण के लिए, सत्यापन त्रुटि, लापता डेटा।

6

401

UNAUTHORIZED - बताता है कि उपयोगकर्ता अमान्य या गलत प्रमाणीकरण टोकन का उपयोग कर रहा है।

7

403

FORBIDDEN- बताता है कि उपयोग की जाने वाली विधि तक उपयोगकर्ता की पहुंच नहीं है। उदाहरण के लिए, व्यवस्थापक अधिकारों के बिना पहुंच हटाएं।

8

404

NOT FOUND - बताता है कि विधि उपलब्ध नहीं है।

9

409

CONFLICT- विधि को निष्पादित करते समय संघर्ष की स्थिति बताता है। उदाहरण के लिए, डुप्लिकेट प्रविष्टि जोड़ना।

10

500

INTERNAL SERVER ERROR - बताता है कि विधि को निष्पादित करते समय सर्वर ने कुछ अपवाद फेंक दिया है।