RESTful Web Hizmetleri - Güvenlik

RESTful Web Hizmetleri, HTTP URL Yolları ile çalıştığından, bir RESTful Web Hizmetinin, bir web sitesinin güvenliğiyle aynı şekilde korunması çok önemlidir.

RESTful Web Hizmeti tasarlarken uyulması gereken en iyi uygulamalar aşağıdadır -

  • Validation- Sunucudaki tüm girişleri doğrulayın. Sunucunuzu SQL veya NoSQL enjeksiyon saldırılarına karşı koruyun.

  • Session Based Authentication - Bir Web Hizmeti yöntemine her istek yapıldığında bir kullanıcının kimliğini doğrulamak için oturum tabanlı kimlik doğrulamasını kullanın.

  • No Sensitive Data in the URL - Bir URL'de asla kullanıcı adı, parola veya oturum belirteci kullanmayın, bu değerler POST yöntemi aracılığıyla Web Hizmetine aktarılmalıdır.

  • Restriction on Method Execution- GET, POST ve DELETE yöntemleri gibi yöntemlerin sınırlı kullanımına izin verin. GET yöntemi verileri silememelidir.

  • Validate Malformed XML/JSON - Bir web hizmeti yöntemine geçirilen iyi biçimlendirilmiş girdileri kontrol edin.

  • Throw generic Error Messages - Bir web hizmeti yöntemi, erişimin yasaklandığını vb. Göstermek için 403 gibi HTTP hata mesajlarını kullanmalıdır.

HTTP Kodu

Sr.No. HTTP Kodu ve Açıklaması

1

200

OK - başarıyı gösterir.

2

201

CREATED- bir kaynak POST veya PUT isteği kullanılarak başarıyla oluşturulduğunda. Konum başlığını kullanarak yeni oluşturulan kaynağa bağlantıyı döndürür.

3

204

NO CONTENT- yanıt gövdesi boş olduğunda. Örneğin, bir DELETE isteği.

4

304

NOT MODIFIED- koşullu GET istekleri durumunda ağ bant genişliği kullanımını azaltmak için kullanılır. Yanıt gövdesi boş olmalıdır. Başlıklarda tarih, konum vb. Bulunmalıdır.

5

400

BAD REQUEST- geçersiz bir giriş sağlandığını belirtir. Örneğin, doğrulama hatası, eksik veriler.

6

401

UNAUTHORIZED - kullanıcının geçersiz veya yanlış kimlik doğrulama belirteci kullandığını belirtir.

7

403

FORBIDDEN- Kullanıcının kullanılan yönteme erişimi olmadığını belirtir. Örneğin, yönetici hakları olmadan erişimi silin.

8

404

NOT FOUND - yöntemin mevcut olmadığını belirtir.

9

409

CONFLICT- yöntemi uygularken çatışma durumunu belirtir. Örneğin, yinelenen giriş eklemek.

10

500

INTERNAL SERVER ERROR - yöntemi çalıştırırken sunucunun bazı istisnalar attığını belirtir.