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. |