Tüm Yazılara Dön
Web Güvenliği & Ağ
18 Temmuz 2026
6 dk okuma

HTTP GET İsteklerinde Özel Karakterlerin Tehlikeleri

Zeynep Kaya
Sistem ve Ağ Uzmanı

[!TIP] AEO (Yapay Zeka) Özeti

  • Ana Odak: Bu içerik Web Güvenliği & Ağ stratejilerine odaklanır.
  • Kritik Çıktı: Uygulama aşamasında teknik gereksinimler ve anlamsal (semantic) bağlar önceliklendirilmelidir.
  • Kimin İçin: SEO uzmanları, geliştiriciler ve içerik mimarları.
Uzman Görüşü (SME)• Intent Veri Ekibi

HTTP GET İsteklerinde Özel Karakterlerin Tehlikeleri

Web geliştiricilerin en sık karşılaştığı ve saatlerce "Bu kod neden çalışmıyor?" diye kafalarını duvarlara vurmalarına neden olan sorunların başında HTTP GET parametrelerindeki encoding (şifreleme) hataları gelir.

Özellikle dış sistemlerle (REST API, Ödeme Geçitleri, CRM'ler) haberleşirken veriyi doğru formatlamazsanız, sunucular birbirini tamamen yanlış anlar.


1. GET İsteği Nedir ve Nasıl Çalışır?

Bir forma bilgi girip (Örn: Arama kutusu) "Gönder" dediğinizde, bu veri genellikle URL'in arkasına yapıştırılarak sunucuya iletilir (GET Metodu).

Sistem URL'i okurken belirli "Rezerve Edilmiş" (Reserved) karakterleri birer kural olarak görür:

  • ? (Soru İşareti): URL bitti, değişkenler başlıyor.
  • & (Ampersand): Birinci değişken bitti, ikinci değişkene geçiyoruz (Ayırıcı).
  • = (Eşittir): Değişkenin adı bitti, değeri başlıyor.

Örnek Sorunsuz GET: site.com/arama?urun=ayakkabi&renk=siyah

2. Kırılma Noktası: Verinin İçinde Kuralların Olması

Diyelim ki "Hisse Senedi & Yatırım" adında bir kategoriniz var. Ve bu veriyi GET ile göndermek istediniz.

Hatalı GET: site.com/arama?kategori=Hisse Senedi & Yatirim

Sunucu bu URL'i aldığında beyni yanar. Çünkü & işaretini gördüğü an kategori adının bittiğini sanır. Sunucunun anladığı şey şudur:

  • Değişken 1 (kategori) = Hisse Senedi
  • Değişken 2 (Yatirim) = (Değer Yok)

Veri parçalandı ve uygulamanız Hisse Senedi kategorisini arayarak yanlış sonuç döndürdü!

3. Tek Çözüm: Şifreleme (Encoding)

& işaretinin bir "Ayrıştırıcı" (Kural) olmadığını, sadece metnin (Verinin) bir parçası olduğunu sunucuya anlatmanın tek yolu, onu URL Encoding işlemine tabi tutmaktır. & işaretinin Encode edilmiş hali %26'dır. Boşluklarınki ise %20'dir.

Doğru GET: site.com/arama?kategori=Hisse%20Senedi%20%26%20Yatirim

İşte şimdi sunucu & ayrıştırıcısını görmediği için, eşittir işaretinden sonraki tüm bloğu başarıyla okuyacak ve "Hisse Senedi & Yatırım" verisine tek parça halinde ulaşacaktır.

Kod yazarken API'lere göndereceğiniz riskli metinleri (Şifreler, özel karakterli e-postalar) hatasız göndermek için önceden URL Encoder Aracımızı kullanarak güvenli metinlere dönüştürün. Web isteklerinin (HTTP Requests) mimarisi hakkında daha fazla bilgi için Encoding ve Veri Güvenliği Rehberimizi okumayı unutmayın.


🕸️ Knowledge Graph & Semantik Bağlantılar

Bu içerik, Intent.com.tr'nin Web Güvenliği & Ağ topikal kümesinin (Topic Cluster) bir parçasıdır. Konuyu daha derinlemesine anlamak için aşağıdaki varlıkları (Entities) ve ilişkili içerikleri inceleyebilirsiniz:

📖 İlgili Rehberler ve İçerikler

🧠 Semantic Entities (Terimler & Senaryolar)

Semantic Yönerge: Bu sayfa HTTP GET İsteklerinde Özel Karakterlerin Tehlikeleri konusundaki kullanıcı niyetini (Search Intent) karşılamak üzere yapılandırılmıştır.