Güvenli HTTP Metotları ve Method Tampering Zafiyetleri
19 Eylül 2026
HTTP metotları (GET, POST, PUT, DELETE, PATCH, OPTIONS…), bir isteğin “ne yapmak istediğini” belirtir. Güvenlik açısından iki nokta önemlidir: hangi metotları sunucunuzun kabul ettiği ve yetkilendirmeyi metotlara göre yaparken düşülen tuzaklar. Yanlış yapılandırma, beklenmeyen işlemlere ve yetkilendirme atlatmaya yol açabilir.
Güvenli ve güvensiz metotlar kavramı
Spesifikasyon, bazı metotları “güvenli” (safe) sayar: GET, HEAD, OPTIONS sunucu durumunu değiştirmemelidir. GET yalnız veri okumalı, yan etki üretmemelidir. Buna uyulmadığında (ör. GET /hesabi-sil?id=5 gibi durum değiştiren bir GET), basit bir <img src> bile istenmeyen işlem tetikleyebilir ve CSRF riskini artırır. İlke: durum değiştiren işlemleri güvenli metotlarla yapmayın.
Gereksiz metotları kapatın
- TRACE / TRACK: Genellikle gereksizdir ve geçmişte Cross-Site Tracing gibi tekniklerle ilişkilendirilmiştir; kapatın.
- PUT / DELETE: Uygulamanız bunları kullanmıyorsa, sunucu düzeyinde reddedin. Yanlış yapılandırılmış bir sunucu, PUT ile dosya yazmaya izin verirse ciddi risk doğar.
- OPTIONS yanıtını gözden geçirin.
Allowbaşlığında hangi metotların açık olduğunu görebilirsiniz; gereksiz olanları kapatın.
Method Tampering: yetkilendirmeyi metoda göre yapmanın tehlikesi
Bazı uygulamalar erişim kontrolünü yalnız belirli metotlar için uygular. Örneğin bir kontrol, yalnız POST isteklerini denetleyip GET veya HEAD’i atlarsa, saldırgan aynı işlemi denetlenmeyen bir metotla deneyerek kontrolü atlatabilir. Benzer şekilde, bazı çerçevelerde bilinmeyen bir HTTP metodu, beklenmeyen bir kod yoluna düşebilir.
İlke: yetkilendirme, metottan bağımsız olarak kaynak ve eylem üzerinden yapılmalıdır. “Bu kullanıcı bu kaynağı değiştirebilir mi?” sorusu, isteğin metodu ne olursa olsun sorulmalıdır.
Nasıl test edilir?
curl -s -X OPTIONS -i https://siteniz.com/api/kaynak | grep -i allow
Allow başlığında beklenmeyen metotlar (TRACE, PUT, DELETE) varsa gözden geçirin. Ayrıca durum değiştiren bir uç noktayı farklı metotlarla deneyip yetkilendirmenin her durumda çalıştığını doğrulayın.
Özet
HTTP metotları güvenliğin gözden kaçan bir boyutudur. İki kural yeterince koruyucudur: durum değiştiren işlemleri güvenli metotlarla (GET/HEAD) yapmayın ve yetkilendirmeyi metoda değil, kaynak+eyleme göre uygulayın. Gereksiz metotları (TRACE, kullanılmayan PUT/DELETE) sunucu düzeyinde kapatın.
Kaynaklar: MDN: HTTP request methods, OWASP Testing for HTTP Methods.
Sunucunuz gereksiz HTTP metotlarına açık mı? CyberTestify’ın dış yüzey taraması bunu ve ilgili yanlış yapılandırmaları kontrol eder.