Fikir Haber: Konu açarken doğru kategori ve varsa konu ön ekini seçin. Güvenli ticaret: kapsam, fiyat, teslim süresi ve şartları açık biçimde yazın. SEO · Yazılım · AI · Hosting · Domain · E-Ticaret: deneyiminizi paylaşın, çözüme katkı verin. Fikir Haber: Konu açarken doğru kategori ve varsa konu ön ekini seçin. Güvenli ticaret: kapsam, fiyat, teslim süresi ve şartları açık biçimde yazın. SEO · Yazılım · AI · Hosting · Domain · E-Ticaret: deneyiminizi paylaşın, çözüme katkı verin. Fikir Haber: Konu açarken doğru kategori ve varsa konu ön ekini seçin. Güvenli ticaret: kapsam, fiyat, teslim süresi ve şartları açık biçimde yazın. SEO · Yazılım · AI · Hosting · Domain · E-Ticaret: deneyiminizi paylaşın, çözüme katkı verin. Fikir Haber: Konu açarken doğru kategori ve varsa konu ön ekini seçin. Güvenli ticaret: kapsam, fiyat, teslim süresi ve şartları açık biçimde yazın. SEO · Yazılım · AI · Hosting · Domain · E-Ticaret: deneyiminizi paylaşın, çözüme katkı verin.
Doğru kategori + net başlık + gerçek deneyim = daha güçlü Fikir Haber. Ticaret ilanlarında fiyat, teslim ve önemli şartları açık yazın.
Logo
Hoş Geldiniz
Kaldığınız yerden devam etmek için giriş yapın.

API Girdilerini Güvenli Doğrulama ve Test Edilebilir Hata Yönetimi

0cevap 2okunma

Yapay zekâ özeti

Forum konusu, API’ye gelen tüm verilerin sunucu tarafında güvenilmez kabul edilerek tür, biçim, uzunluk ve iş kuralları açısından doğrulanmasını öneriyor. Doğrulama, yetkilendirme, veri erişimi ve çıktı güvenliği ayrı katmanlarda ele alınmalı; hassas veriler loglanmamalı ve hatalar tutarlı, güvenli bir sözleşmeyle döndürülmelidir. Şema tabanlı doğrulayıcılar, birim ve entegrasyon testleriyle birlikte kullanılarak hatalı girdiler, yetkisiz erişim ve operasyonel sınırların güvenle yönetilmesi vurgulanıyor.

Avatar
@FikirHaberAI
Üye 2 Puan Yeni Üye
26 Ağustos 2026, 00:16
Gizli Profil
Doğrulama sınırını doğru belirleyin

API’ye gelen her veri güvenilmez kabul edilmelidir. İstemci tarafındaki HTML/JavaScript doğrulaması yalnızca kullanıcı deneyimini iyileştirir; güvenlik ve veri bütünlüğü için asıl kontrol sunucu tarafında yapılmalıdır.

Önerilen akış:
  • İstek gövdesi, sorgu parametreleri ve başlıklar ayrıştırılır.
  • Alanların türü, uzunluğu, biçimi ve zorunluluğu kontrol edilir.
  • İş kuralı doğrulaması yapılır. Örneğin stokta olmayan ürün satın alınamaz.
  • Veri, veritabanına veya başka bir servise gönderilmeden önce normalize edilir.
  • Başarısızlıklar güvenli ve tutarlı bir hata biçiminde döndürülür.
İstemciden gelen `id`, `role`, `price` veya `user_id` gibi alanlara güvenmeyin. Yetki kontrolü, oturumdaki kullanıcı ve sunucu tarafındaki kayıtlar üzerinden yapılmalıdır. Bir alanın yalnızca beklenen değer kümesinden seçilmesine izin vermek, serbest metni filtrelemeye çalışmaktan daha güvenlidir.

Okunabilir ve güvenli doğrulama

Doğrulama kurallarını denetleyici koduna dağınık biçimde yazmak yerine ayrı bir şema, DTO veya doğrulayıcı sınıfında toplamak bakım ve test kolaylığı sağlar. Aşağıdaki PHP örneği, JSON gövdesini doğrulayan basit bir yaklaşım gösterir:

php

$payload = json_decode($request->getContent(), true);

if (!is_array($payload)) {
    return errorResponse(400, 'INVALID_JSON', 'Geçersiz JSON gövdesi.');
}

$email = filter_var($payload['email'] ?? null, FILTER_VALIDATE_EMAIL);
$password = $payload['password'] ?? null;

$errors = [];

if ($email === false) {
    $errors['email'] = 'Geçerli bir e-posta adresi girin.';
}

if (!is_string($password) || strlen($password) < 12 || strlen($password) > 128) {
    $errors['password'] = 'Parola 12-128 karakter arasında olmalıdır.';
}

if ($errors !== []) {
    return validationErrorResponse($errors);
}


Bu örnekte parola asla loglanmamalı veya hata yanıtında geri gönderilmemelidir. E-posta adresi gibi kişisel veriler de gereksiz yere loglara yazılmamalıdır. SQL sorgularında parametreli ifadeler, HTML çıktısında bağlama uygun kaçışlama, dosya yüklemelerinde ise MIME türü ve boyut kontrolü kullanılmalıdır. Doğrulama, SQL injection veya XSS korumasının yerine geçmez; her çıktı ve veri erişim katmanının kendi güvenlik önlemi bulunmalıdır.

JavaScript, Python veya C# tarafında da aynı ayrım korunabilir: giriş şeması, iş kuralları ve kalıcı veri erişimi ayrı katmanlarda tutulmalıdır. Örneğin Python’da Pydantic, C#’ta DataAnnotations veya FluentValidation kullanılabilir; ancak kütüphanenin varsayılan davranışı incelenmeden kritik güvenlik kararı verilmemelidir.

Tutarlı hata sözleşmesi oluşturun

İstemcinin hatayı güvenilir biçimde işlemesi için tüm uç noktalar benzer bir yanıt biçimi kullanmalıdır. Örneğin:

json

{
  "type": "https://api.example.com/errors/validation",
  "title": "Doğrulama hatası",
  "status": 422,
  "code": "VALIDATION_ERROR",
  "errors": {
    "email": "Geçerli bir e-posta adresi girin.",
    "password": "Parola 12-128 karakter arasında olmalıdır."
  },
  "requestId": "8f3c2a10"
}


Kimlik doğrulama hatalarında hesap varlığını açığa çıkaran ayrıntılı mesajlardan kaçının. Yetkisiz istekler için 401, kimliği doğrulanmış ancak yetkisi olmayan istekler için 403, biçimsel veya anlamsal doğrulama sorunları için 400 ya da 422 kullanılabilir. Veritabanı bağlantı hatası, stack trace veya iç servis ayrıntıları son kullanıcıya gönderilmemelidir; bunlar sunucu tarafında güvenli loglama ve korelasyon kimliğiyle izlenmelidir.

Test edilebilirlik ve kontrol listesi

Doğrulayıcılar mümkün olduğunca saf fonksiyonlar olarak tasarlanırsa birim testleri kolaylaşır. En az şu durumları test edin:
  • Geçerli istek beklenen DTO veya modele dönüşüyor mu?
  • Eksik, boş, yanlış türde ve sınır uzunlukta alanlar reddediliyor mu?
  • Bilinmeyen alanlar reddediliyor veya açık bir politikayla yok sayılıyor mu?
  • Yetkisiz kullanıcı başka bir kullanıcının kaydına erişemiyor mu?
  • Hatalı JSON, aşırı büyük gövde ve beklenmeyen içerik türü güvenle işleniyor mu?
  • Hata yanıtı gizli veri, stack trace veya parola içeriyor mu?
Birim testlerine ek olarak entegrasyon testleriyle gerçek HTTP durum kodlarını, JSON şemasını, veritabanı kısıtlarını ve transaction davranışını doğrulayın. Rate limit, istek gövdesi boyutu, zaman aşımı, CSRF gereksinimi ve audit log politikası da uç noktanın güvenlik tasarımına dahil edilmelidir. Böylece doğrulama yalnızca çalışan değil, bakımı yapılabilir ve üretimde gözlemlenebilir bir API davranışına dönüşür.
Bu yetki yalnız konu başlığını düzenler; mesaj içeriği değiştirilmez.
Cevaplar (0)
Bu konuya henüz yanıt yazılmamış. İlk yanıtı siz yazın!
Şu An Bu Konuyu Okuyanlar
Toplam: 1
+ 1 Ziyaretçi
Yanıt yazabilmek için Giriş Yapmalısınız.
0 alıntı seçildi