HTTP (Hyper Text Transfer Protocol) Nedir? Nasıl Çalışır?

Bunjo

Uzman üye
14 Ara 2020
1,592
1,890
I Won

oqk18ir.png

lbn20fm.png
2q250vr.png



Merhabalar ben saldırı timlerinden Bunjo, bu konuda "HTTP" kavramını ve nasıl çalıştığını detaylıca açıklamaya çalışacağım.


HTTP (Hyper Text Transfer Protocol)

HTTP (Hypertext Transfer Protocol), internet üzerinde bilgi alışverişi için kullanılan bir iletişim protokolüdür. Bu protokol, istemci-sunucu modeline dayanır ve genellikle web tarayıcıları ile web sunucuları arasında kullanılır. HTTP, HTML, CSS, JavaScript gibi web sayfalarının yanı sıra resimler, videolar ve diğer medya dosyalarının transferinde de kullanılır.

HTTP'nin temel amacı, bir istemcinin bir web sunucusundan belirli bir kaynağı (örneğin, bir web sayfasını veya bir resmi) talep etmesi ve sunucunun bu talebe uygun bir yanıt vermesidir. Bu süreç, HTTP metotları, durum kodları, başlıklar ve diğer özelliklerle tanımlanmıştır.






HTTP İle HTTPS Karşılaştırması:

Güvenlik:
  • HTTP, verileri şifrelemeden transfer eder, bu nedenle iletilen veriler açık bir şekilde okunabilir. Bu durum, kullanıcıların kişisel bilgilerini veya hassas verilerini korumak için güvenli değildir.
  • HTTPS ise, SSL/TLS (Secure Socket Layer/Transport Layer Security) protokollerini kullanarak verileri şifreler. Bu, iletilen bilgilerin güvenli olmasını sağlar ve üçüncü tarafların verileri anlamasını zorlaştırır. Kullanıcıların bilgilerini korumak için daha güvenli bir seçenektir.
Güvenlik Sertifikası:
  • HTTP'de güvenlik sertifikası gerekmez. Veri şifrelenmez ve bu nedenle güvenlik sertifikasına ihtiyaç duyulmaz.
  • HTTPS'de ise, bir web sitesinin güvenilir olduğunu ve verilerin şifrelendiğini doğrulayan bir SSL/TLS sertifikası gereklidir. Bu sertifika, bir web sitesinin URL'sinin başındaki "https://" ile belirtilir.
Port Numarası:
  • HTTP, genellikle 80 numaralı portu kullanır.
  • HTTPS, genellikle 443 numaralı portu kullanır.
SEO (Search Engine Optimization) Etkisi:
  • Google ve diğer arama motorları, HTTPS kullanan siteleri teşvik etmektedir. HTTPS kullanan siteler, arama motoru sıralamalarında avantaj elde edebilir. Bu nedenle, güvenlik ve SEO açısından HTTPS tercih edilebilir.
Veri Bütünlüğü:

  • HTTPS, veri bütünlüğünü sağlamak için hash fonksiyonları kullanır. Bu, verilerin transfer sırasında değiştirilmediğini garanti eder.
  • HTTP'de ise, veri bütünlüğü sağlanmaz, bu nedenle veriler transfer sırasında değiştirilebilir.
Özetle, HTTPS, internet üzerinde daha güvenli bir iletişim sağlar ve bu nedenle özellikle kişisel veya hassas verilerin transfer edildiği durumlarda tercih edilir.


HTTP'nin Güvensiz Yanları:

HTTP bağlantıları şifrelenmemiştir ve bu nedenle veriler açık bir şekilde iletilir. Bu durum, ağ üzerindeki herhangi bir kişinin veya sistem tarafından verilerin kolayca okunabileceği anlamına gelir. Bu, kullanıcıların özel bilgilerini veya hassas verilerini korumak için yeterince güvenli değildir.

SSL (Secure Sockets Layer) veya daha modern versiyonu olan TLS (Transport Layer Security), iletişim kanalını şifreleyerek güvenliği artıran bir güvenlik protokolüdür. Bu protokoller, HTTP üzerinden iletilen verilerin şifrelenerek, verilerin sadece alıcı ve gönderen arasında anlaşılabilir olmasını sağlar.

Eğer bir web sitesi "http" protokolü kullanıyorsa, bu durumda veriler şifrelenmeden iletiliyor demektir ve bu, üçüncü tarafların bu verilere müdahale etme olasılığını artırır. Bu nedenle, özellikle kullanıcıların kişisel bilgilerini girdikleri veya hassas verilerini paylaştıkları durumlarda, web siteleri "https" protokolü kullanarak şifreleme sağlamalıdır. Bu, güvenli bir bağlantı kurularak verilerin gizliliği ve bütünlüğü sağlanır.

HTTP'nin çalışma prensiplerini şu şekilde sıralayabiliriz;




İstemci-Sunucu İlişkisi: HTTP, bir istemci-sunucu modeline dayanır. İstemci, genellikle bir web tarayıcısıdır ve kullanıcının isteğini sunucuya ileten taraftır.
Sunucu, istemcinin isteğine yanıt veren ve istemciye istenen bilgileri gönderen taraftır.

Tarayıcı Kontrolü: Tarayıcı, kullanıcının adres çubuğuna girdiği URL'yi önbelleğinde aratır, eğer bu veriye karşılık IP adresi varsa (anahtar-değer çiftleri) direkt yönlendirmesini yapar,
Eğer herhangi bir kayıt yok ise İstemci, tarayıcısındaki adres çubuğuna bir URL (Uniform Resource Locator) girer ve DNS (Domain Name System) kullanılıyorsa
URL'yi IP (Internet Protocol Address) haline getirmek için DNS sunucusuna başvrurur. ( IP adresi girerseniz tarayacı tekrardan gidip DNS sunucusuna başvurmaz. )

DNS Çözümleme: İstemci (Burada tarayıcı), girilen URL'in IP adresini belirlemek için DNS (Domain Name System) sunucusuna başvurduktan sonra çözümleme işleminin başlatılmasını DNS sunucusuna söyler.




DNS çözümleme süreci şu adımları takip eder:





DNS Sunucusu İstek ve Yanıt: Tarayıcı, DNS sunucusuna URL'nin IP adresini çözümlemesi için bir istek gönderir. DNS sunucusu, URL'nin karşılık geldiği IP adresini içeren bir yanıt gönderir.

DNS Sunucusundan Cevap Alma: DNS sunucusu, istenilen alan adının karşılık geldiği IP adresini bulup tarayıcıya cevap verir.
IP Adresi ile Bağlantı: Tarayıcı, aldığı IP adresi üzerinden web sitesine bağlantı kurar ve istenilen içeriği talep eder.


DNS çözümlemesi bittikten sonra;
TCP Bağlantısı Kurma: İstemci, belirlenen IP adresine TCP (Transmission Control Protocol) bağlantısı kurar. Bu bağlantı, istemci ve sunucu arasında güvenilir bir veri iletim kanalı sağlar.



HTTP İstek Metodu: İstemci, belirli bir kaynağa erişmek için bir HTTP isteği gönderir. Bu istek, bir HTTP metodu (GET, POST, PUT, DELETE, vb.) ve hedef URL'i içerir.


HTTP İstek Metodları:
GET: Belirtilen kaynağı almak için kullanılır. Genellikle web tarayıcıları tarafından kullanılan bir metottur. URL'de gömülü parametreleri kullanarak veri almak için kullanılır.

POST: Belirtilen kaynağa yeni bir veri eklemek için kullanılır. Genellikle form verilerini sunucuya göndermek için kullanılır. Veri gövdesinde iletilen bilgiler, URL'de değil, HTTP isteğinin gövdesinde bulunur.

PUT: Belirtilen kaynağı oluşturmak veya güncellemek için kullanılır. Özellikle RESTful servislerde kullanılır. Bir kaynak yoksa oluşturur, varsa günceller.

DELETE: Belirtilen kaynağı silmek için kullanılır. RESTful servislerde kaynağı silmek için kullanılır.

PATCH: Belirtilen kaynağın bir kısmını güncellemek için kullanılır. Kaynağı tamamen güncellemeden sadece belirli alanları değiştirmek amacıyla kullanılır.

HEAD: Belirtilen kaynağın sadece başlık bilgilerini almak için kullanılır. GET metoduna benzer, ancak sadece başlık bilgilerini alır, içeriği almaz.

OPTIONS: Belirtilen kaynağın desteklediği HTTP metotlarını sorgulamak için kullanılır. Sunucuya hangi metotları kullanabileceğinizi sormak için kullanılır.

TRACE: İstemci ve sunucu arasındaki iletişimi izlemek için kullanılır. Genellikle hata ayıklama veya güvenlik amaçlarıyla kullanılır.

CONNECT: Sunucu ile güvenli bir bağlantı (SSL/TLS) kurmak için kullanılır. Genellikle HTTPS trafiği için kullanılır.
En çok "GET" ve "POST" HTTP istek metodları kullanılır.



Header (Başlık): İstek başlıkları, isteğin ek bilgilerini içerir. Örneğin, tarayıcı türü, kabul edilebilir dil, içerik türü gibi bilgileri içerir.




HTTP başlıkları (headers), bir HTTP isteği veya yanıtının ek bilgilerini taşıyan bileşenlerdir.
Başlıklar, isteğin veya yanıtın içeriğini daha iyi anlamamıza ve yönetmemize yardımcı olur.




Bunları otomatize yapan bir araç istiyorsanız onu da anlattım.
Konu linki:
"GET Request" ile "Header" ve "Response" Bilgisi Çekmek


Bazı Header Başlıkları:


Genel Başlıklar:

Cache-Control: Önbellek kontrolü için kullanılır. Önbellek yönetimini belirlemek için kullanılır.

Connection: Bağlantı kontrolünü belirlemek için kullanılır. "Keep-Alive" gibi değerler alabilir.

Date: Yanıtın oluşturulduğu tarihi belirtir.

Pragma: HTTP/1.0 uyumlu önbellek kontrolü için kullanılır.

Trailer: İleti gövdesindeki trailer alanları hakkında bilgi verir.

Transfer-Encoding: İletinin transfer kodlamasını belirtir. Örneğin, "chunked" değeri.

Upgrade: Protokol yükseltmelerini belirtir. Örneğin, HTTP/2'ye geçiş için kullanılabilir.





İstek Başlıkları:

Host: İstek yapılan sunucunun adını belirtir. Virtual hosting durumlarında kullanılır.

User-Agent: İstemcinin kullanılan yazılımını belirtir. Sunucu, bu bilgiyi kullanıcı deneyimini optimize etmek için kullanabilir.

Accept: İstemcinin destekleyebileceği medya türlerini belirtir. Sunucu, bu bilgiyi kullanarak uygun bir içerik türü seçebilir.

Referer (sic): İstemcinin hangi sayfadan geldiğini belirtir. Sayfa izleme ve istatistik toplama amaçları için kullanılır.

Cookie: İstemcinin sunucuya daha önce gönderdiği tanımlama bilgilerini içerir. Oturum yönetimi için kullanılır.

Authorization: İstemcinin kimlik doğrulama bilgilerini içerir. Özellikle şifreli bağlantılarda (HTTPS) kullanılır.



Yanıt Başlıkları:

Location: Tarayıcıya yönlendirme yapmak için kullanılır. Özellikle 3xx durum kodlarıyla birlikte kullanılır.

Server: Sunucunun kullandığı yazılım veya servis adını belirtir.

Content-Type: Yanıtın içeriğinin tipini (text/html, application/json, image/jpeg, vb.) belirtir.

Content-Length: Yanıtın içeriğinin uzunluğunu (byte cinsinden) belirtir.

Set-Cookie: Tarayıcıya gönderilen yeni tanımlama bilgilerini belirtir.

ETag: Kaynağın güncel olup olmadığını kontrol etmek için kullanılır.




Durum Kodları: Sunucu, bir işlemin başarılı olup olmadığını belirten bir durum kodu gönderir (200 OK, 404 Not Found, 500 Internal Server Error, vb.).

1xx - Bilgi Mesajları (Informational)

  • 100 Continue: İstemcinin isteği devam edebilir; sunucu bekliyor.
  • 101 Switching Protocols: Sunucu, isteği başka bir protokole geçirme talebini kabul ediyor.

2xx - Başarılı İstek (Successful)

  • 200 OK: İstek başarıyla gerçekleştirildi.
  • 201 Created: İstek tarafından kaynak başarıyla oluşturuldu.
  • 204 No Content: İstek başarıyla gerçekleştirildi, ancak yanıtta içerik yok.

3xx - Yönlendirme (Redirection)

  • 301 Moved Permanently: Kaynak, kalıcı olarak başka bir konuma taşındı.
  • 302 Found (or Moved Temporarily): Kaynak, geçici olarak başka bir konuma taşındı.
  • 303 See Other: GET metodunu kullanarak başka bir konuma yönlendirme yapılması gerekiyor.
  • 304 Not Modified: Kaynak, istemcinin önbelleğinde bulunuyor ve değişmemiş.

4xx - İstemci Hatası (Client Error)

  • 400 Bad Request: İstek, sunucu tarafından anlaşılamadı veya uygun değil.
  • 401 Unauthorized: İstemci, kimlik doğrulaması gerektiren bir kaynağa erişmeye çalıştı, ancak kimlik doğrulaması başarısız.
  • 403 Forbidden: İstemci, kaynağa erişmeye yetkili değil.
  • 404 Not Found: İstenen kaynak bulunamadı.

5xx - Sunucu Hatası (Server Error)

  • 500 Internal Server Error: Sunucu, genel bir içsel hata ile karşılaştı.
  • 501 Not Implemented: Sunucu, isteği yerine getirecek yeteneğe sahip değil.
  • 502 Bad Gateway: Sunucu, geçerli bir yanıt almak için geçerli bir geçit sunucusuna ihtiyaç duyuyor.
  • 503 Service Unavailable: Sunucu şu anda kullanılamıyor (genellikle bakım nedeniyle).

Bu durum kodları, HTTP protokolüyle ilgili istemcilerin ve sunucuların iletişimlerini daha iyi kontrol etmelerini sağlar.


Header ve İçerik (Body):Yanıt başlıkları, istemciye ek bilgiler sağlar. Yanıt içeriği, isteğe bağlı olarak bir kaynağın içeriğini içerir (HTML sayfası, resim, JSON verisi, vb.).

TCP Bağlantısının Kapatılması veya Tekrar Kullanılması: Bağlantının kapatılması veya tekrar kullanılması, HTTP sürümü ve "Connection" başlığına bağlı olarak belirlenir. Keep-Alive özelliği, aynı bağlantının bir dizi istek ve yanıt arasında açık kalmasına olanak tanır.

Tarayıcı İşleme ve Gösterim: İstemci, aldığı yanıtı işleyerek, kullanıcıya görüntülenebilir bir içerik sunar.

CORS (Cross-Origin Resource Sharing): Güvenlik önlemleri olarak, tarayıcılar farklı alan adlarından gelen kaynaklara erişim konusunda kısıtlamalar getirebilir. CORS, bu tür kısıtlamaların aşılmasına yardımcı olan bir mekanizmadır.



CORS Nedir?

CORS (Cross-Origin Resource Sharing), farklı kökenlere (origin) sahip web sayfalarının birbirleriyle kaynakları paylaşmasını sağlayan bir güvenlik önlemidir. Bu, tarayıcı güvenliği nedeniyle, bir web sayfası sadece aynı kök (origin) üzerindeki kaynaklara doğrudan erişebileceği bir politika olduğunu düşünürken, CORS, farklı kökten kaynaklara erişimi kontrol eder.


Web sayfaları arasında kökten köke (cross-origin) erişim sağlama ihtiyacı ortaya çıkabilir, özellikle bir web sayfasının içeriği başka bir kaynaktan (örneğin, başka bir sunucu veya domain) alındığında. CORS, bu tür durumlarda güvenli bir erişim sağlamak için kullanılır.


Örnekleyelim.



Basit İstek (Same-Origin)




Web Sayfası Alanı (Origin): https://web.sayfa.com
API Sunucusu Alanı: (API): https://api.servis.com



Web Sayfası İsteği:


Web sayfasındaki JavaScript kodu, aynı alan içindeki bir API'ye basit bir GET isteği yapmak istiyor.



JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.servis.com/data', true);
xhr.send();

İstek Sonucu:


Domain ile API servisi aynı alan adına sahip olduğu için CORS kontrolü olmadan istek gönderilir.



Cross-Origin İstek (CORS)


Web Sayfası İsteği:



Web sayfasındaki JavaScript kodu, farklı bir etki alanındaki API'ye GET isteği yapmak istiyor.
JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://başka.api.servis.com/data', true);
xhr.send();

Sonuç:Tarayıcı bu isteği önce kontrol eder. Eğer API sunucusu, isteğin geldiği alanı kabul ediyorsa (CORS başlıklarıyla belirlenir),
istek başarılı bir şekilde gerçekleştirilir. Aksi takdirde, tarayıcı isteği engeller.



CORS Başlıkları


API sunucusu, hangi etki alanlarından gelen isteklere izin verileceğini belirleyen CORS başlıklarını kullanır.
Örneğin, aşağıdaki gibi başlıklar API sunucusu tarafından gönderilebilir:





Anlatacaklarım bu kadar.

Okuduğunuz için teşekkürler.

@P4$A Hocama özel teşekkürlerimi sunarım...
 
Son düzenleme:

BlackDynamite

Katılımcı Üye
7 Kas 2023
837
330

oqk18ir.png

lbn20fm.png
2q250vr.png



Merhabalar ben saldırı timlerinden Bunjo, bu konuda "HTTP" kavramını ve nasıl çalıştığını detaylıca açıklamaya çalışacağım.


HTTP (Hyper Text Transfer Protocol)

HTTP (Hypertext Transfer Protocol), internet üzerinde bilgi alışverişi için kullanılan bir iletişim protokolüdür. Bu protokol, istemci-sunucu modeline dayanır ve genellikle web tarayıcıları ile web sunucuları arasında kullanılır. HTTP, HTML, CSS, JavaScript gibi web sayfalarının yanı sıra resimler, videolar ve diğer medya dosyalarının transferinde de kullanılır.

HTTP'nin temel amacı, bir istemcinin bir web sunucusundan belirli bir kaynağı (örneğin, bir web sayfasını veya bir resmi) talep etmesi ve sunucunun bu talebe uygun bir yanıt vermesidir. Bu süreç, HTTP metotları, durum kodları, başlıklar ve diğer özelliklerle tanımlanmıştır.







HTTP'nin çalışma prensiplerini şu şekilde sıralayabiliriz;




İstemci-Sunucu İlişkisi: HTTP, bir istemci-sunucu modeline dayanır. İstemci, genellikle bir web tarayıcısıdır ve kullanıcının isteğini sunucuya ileten taraftır.
Sunucu, istemcinin isteğine yanıt veren ve istemciye istenen bilgileri gönderen taraftır.

Tarayıcı Kontrolü: Tarayıcı, kullanıcının adres çubuğuna girdiği URL'yi önbelleğinde aratır, eğer bu veriye karşılık IP adresi varsa (anahtar-değer çiftleri) direkt yönlendirmesini yapar,
Eğer herhangi bir kayıt yok ise İstemci, tarayıcısındaki adres çubuğuna bir URL (Uniform Resource Locator) girer ve DNS (Domain Name System) kullanılıyorsa
URL'yi IP (Internet Protocol Address) haline getirmek için DNS sunucusuna başvrurur. ( IP adresi girerseniz tarayacı tekrardan gidip DNS sunucusuna başvurmaz. )

DNS Çözümleme: İstemci (Burada tarayıcı), girilen URL'in IP adresini belirlemek için DNS (Domain Name System) sunucusuna başvurduktan sonra çözümleme işleminin başlatılmasını DNS sunucusuna söyler.




DNS çözümleme süreci şu adımları takip eder:





DNS Sunucusu İstek ve Yanıt: Tarayıcı, DNS sunucusuna URL'nin IP adresini çözümlemesi için bir istek gönderir. DNS sunucusu, URL'nin karşılık geldiği IP adresini içeren bir yanıt gönderir.

DNS Sunucusundan Cevap Alma: DNS sunucusu, istenilen alan adının karşılık geldiği IP adresini bulup tarayıcıya cevap verir.
IP Adresi ile Bağlantı: Tarayıcı, aldığı IP adresi üzerinden web sitesine bağlantı kurar ve istenilen içeriği talep eder.


DNS çözümlemesi bittikten sonra;
TCP Bağlantısı Kurma: İstemci, belirlenen IP adresine TCP (Transmission Control Protocol) bağlantısı kurar. Bu bağlantı, istemci ve sunucu arasında güvenilir bir veri iletim kanalı sağlar.



HTTP İstek Metodu: İstemci, belirli bir kaynağa erişmek için bir HTTP isteği gönderir. Bu istek, bir HTTP metodu (GET, POST, PUT, DELETE, vb.) ve hedef URL'i içerir.


HTTP İstek Metodları:
GET: Belirtilen kaynağı almak için kullanılır. Genellikle web tarayıcıları tarafından kullanılan bir metottur. URL'de gömülü parametreleri kullanarak veri almak için kullanılır.

POST: Belirtilen kaynağa yeni bir veri eklemek için kullanılır. Genellikle form verilerini sunucuya göndermek için kullanılır. Veri gövdesinde iletilen bilgiler, URL'de değil, HTTP isteğinin gövdesinde bulunur.

PUT: Belirtilen kaynağı oluşturmak veya güncellemek için kullanılır. Özellikle RESTful servislerde kullanılır. Bir kaynak yoksa oluşturur, varsa günceller.

DELETE: Belirtilen kaynağı silmek için kullanılır. RESTful servislerde kaynağı silmek için kullanılır.

PATCH: Belirtilen kaynağın bir kısmını güncellemek için kullanılır. Kaynağı tamamen güncellemeden sadece belirli alanları değiştirmek amacıyla kullanılır.

HEAD: Belirtilen kaynağın sadece başlık bilgilerini almak için kullanılır. GET metoduna benzer, ancak sadece başlık bilgilerini alır, içeriği almaz.

OPTIONS: Belirtilen kaynağın desteklediği HTTP metotlarını sorgulamak için kullanılır. Sunucuya hangi metotları kullanabileceğinizi sormak için kullanılır.

TRACE: İstemci ve sunucu arasındaki iletişimi izlemek için kullanılır. Genellikle hata ayıklama veya güvenlik amaçlarıyla kullanılır.

CONNECT: Sunucu ile güvenli bir bağlantı (SSL/TLS) kurmak için kullanılır. Genellikle HTTPS trafiği için kullanılır.
En çok "GET" ve "POST" HTTP istek metodları kullanılır.



Header (Başlık): İstek başlıkları, isteğin ek bilgilerini içerir. Örneğin, tarayıcı türü, kabul edilebilir dil, içerik türü gibi bilgileri içerir.




HTTP başlıkları (headers), bir HTTP isteği veya yanıtının ek bilgilerini taşıyan bileşenlerdir.
Başlıklar, isteğin veya yanıtın içeriğini daha iyi anlamamıza ve yönetmemize yardımcı olur.




Bunları otomatize yapan bir araç istiyorsanız onu da anlattım.
Konu linki:
"GET Request" ile "Header" ve "Response" Bilgisi Çekmek


Bazı Header Başlıkları:


Genel Başlıklar:

Cache-Control: Önbellek kontrolü için kullanılır. Önbellek yönetimini belirlemek için kullanılır.

Connection: Bağlantı kontrolünü belirlemek için kullanılır. "Keep-Alive" gibi değerler alabilir.

Date: Yanıtın oluşturulduğu tarihi belirtir.

Pragma: HTTP/1.0 uyumlu önbellek kontrolü için kullanılır.

Trailer: İleti gövdesindeki trailer alanları hakkında bilgi verir.

Transfer-Encoding: İletinin transfer kodlamasını belirtir. Örneğin, "chunked" değeri.

Upgrade: Protokol yükseltmelerini belirtir. Örneğin, HTTP/2'ye geçiş için kullanılabilir.





İstek Başlıkları:

Host: İstek yapılan sunucunun adını belirtir. Virtual hosting durumlarında kullanılır.

User-Agent: İstemcinin kullanılan yazılımını belirtir. Sunucu, bu bilgiyi kullanıcı deneyimini optimize etmek için kullanabilir.

Accept: İstemcinin destekleyebileceği medya türlerini belirtir. Sunucu, bu bilgiyi kullanarak uygun bir içerik türü seçebilir.

Referer (sic): İstemcinin hangi sayfadan geldiğini belirtir. Sayfa izleme ve istatistik toplama amaçları için kullanılır.

Cookie: İstemcinin sunucuya daha önce gönderdiği tanımlama bilgilerini içerir. Oturum yönetimi için kullanılır.

Authorization: İstemcinin kimlik doğrulama bilgilerini içerir. Özellikle şifreli bağlantılarda (HTTPS) kullanılır.



Yanıt Başlıkları:

Location: Tarayıcıya yönlendirme yapmak için kullanılır. Özellikle 3xx durum kodlarıyla birlikte kullanılır.

Server: Sunucunun kullandığı yazılım veya servis adını belirtir.

Content-Type: Yanıtın içeriğinin tipini (text/html, application/json, image/jpeg, vb.) belirtir.

Content-Length: Yanıtın içeriğinin uzunluğunu (byte cinsinden) belirtir.

Set-Cookie: Tarayıcıya gönderilen yeni tanımlama bilgilerini belirtir.

ETag: Kaynağın güncel olup olmadığını kontrol etmek için kullanılır.




Durum Kodları: Sunucu, bir işlemin başarılı olup olmadığını belirten bir durum kodu gönderir (200 OK, 404 Not Found, 500 Internal Server Error, vb.).

1xx - Bilgi Mesajları (Informational)

  • 100 Continue: İstemcinin isteği devam edebilir; sunucu bekliyor.
  • 101 Switching Protocols: Sunucu, isteği başka bir protokole geçirme talebini kabul ediyor.

2xx - Başarılı İstek (Successful)

  • 200 OK: İstek başarıyla gerçekleştirildi.
  • 201 Created: İstek tarafından kaynak başarıyla oluşturuldu.
  • 204 No Content: İstek başarıyla gerçekleştirildi, ancak yanıtta içerik yok.

3xx - Yönlendirme (Redirection)

  • 301 Moved Permanently: Kaynak, kalıcı olarak başka bir konuma taşındı.
  • 302 Found (or Moved Temporarily): Kaynak, geçici olarak başka bir konuma taşındı.
  • 303 See Other: GET metodunu kullanarak başka bir konuma yönlendirme yapılması gerekiyor.
  • 304 Not Modified: Kaynak, istemcinin önbelleğinde bulunuyor ve değişmemiş.

4xx - İstemci Hatası (Client Error)

  • 400 Bad Request: İstek, sunucu tarafından anlaşılamadı veya uygun değil.
  • 401 Unauthorized: İstemci, kimlik doğrulaması gerektiren bir kaynağa erişmeye çalıştı, ancak kimlik doğrulaması başarısız.
  • 403 Forbidden: İstemci, kaynağa erişmeye yetkili değil.
  • 404 Not Found: İstenen kaynak bulunamadı.

5xx - Sunucu Hatası (Server Error)

  • 500 Internal Server Error: Sunucu, genel bir içsel hata ile karşılaştı.
  • 501 Not Implemented: Sunucu, isteği yerine getirecek yeteneğe sahip değil.
  • 502 Bad Gateway: Sunucu, geçerli bir yanıt almak için geçerli bir geçit sunucusuna ihtiyaç duyuyor.
  • 503 Service Unavailable: Sunucu şu anda kullanılamıyor (genellikle bakım nedeniyle).

Bu durum kodları, HTTP protokolüyle ilgili istemcilerin ve sunucuların iletişimlerini daha iyi kontrol etmelerini sağlar.


Header ve İçerik (Body):Yanıt başlıkları, istemciye ek bilgiler sağlar. Yanıt içeriği, isteğe bağlı olarak bir kaynağın içeriğini içerir (HTML sayfası, resim, JSON verisi, vb.).

TCP Bağlantısının Kapatılması veya Tekrar Kullanılması: Bağlantının kapatılması veya tekrar kullanılması, HTTP sürümü ve "Connection" başlığına bağlı olarak belirlenir. Keep-Alive özelliği, aynı bağlantının bir dizi istek ve yanıt arasında açık kalmasına olanak tanır.

Tarayıcı İşleme ve Gösterim: İstemci, aldığı yanıtı işleyerek, kullanıcıya görüntülenebilir bir içerik sunar.

CORS (Cross-Origin Resource Sharing): Güvenlik önlemleri olarak, tarayıcılar farklı alan adlarından gelen kaynaklara erişim konusunda kısıtlamalar getirebilir. CORS, bu tür kısıtlamaların aşılmasına yardımcı olan bir mekanizmadır.



CORS Nedir?

CORS (Cross-Origin Resource Sharing), farklı kökenlere (origin) sahip web sayfalarının birbirleriyle kaynakları paylaşmasını sağlayan bir güvenlik önlemidir. Bu, tarayıcı güvenliği nedeniyle, bir web sayfası sadece aynı kök (origin) üzerindeki kaynaklara doğrudan erişebileceği bir politika olduğunu düşünürken, CORS, farklı kökten kaynaklara erişimi kontrol eder.


Web sayfaları arasında kökten köke (cross-origin) erişim sağlama ihtiyacı ortaya çıkabilir, özellikle bir web sayfasının içeriği başka bir kaynaktan (örneğin, başka bir sunucu veya domain) alındığında. CORS, bu tür durumlarda güvenli bir erişim sağlamak için kullanılır.


Örnekleyelim.



Basit İstek (Same-Origin)




Web Sayfası Alanı (Origin): https://web.sayfa.com
API Sunucusu Alanı: (API): https://api.servis.com



Web Sayfası İsteği:


Web sayfasındaki JavaScript kodu, aynı alan içindeki bir API'ye basit bir GET isteği yapmak istiyor.



JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.servis.com/data', true);
xhr.send();

İstek Sonucu:


Domain ile API servisi aynı alan adına sahip olduğu için CORS kontrolü olmadan istek gönderilir.



Cross-Origin İstek (CORS)


Web Sayfası İsteği:



Web sayfasındaki JavaScript kodu, farklı bir etki alanındaki API'ye GET isteği yapmak istiyor.
JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://başka.api.servis.com/data', true);
xhr.send();

Sonuç:Tarayıcı bu isteği önce kontrol eder. Eğer API sunucusu, isteğin geldiği alanı kabul ediyorsa (CORS başlıklarıyla belirlenir),
istek başarılı bir şekilde gerçekleştirilir. Aksi takdirde, tarayıcı isteği engeller.



CORS Başlıkları


API sunucusu, hangi etki alanlarından gelen isteklere izin verileceğini belirleyen CORS başlıklarını kullanır.
Örneğin, aşağıdaki gibi başlıklar API sunucusu tarafından gönderilebilir:





Anlatacaklarım bu kadar.

Okuduğunuz için teşekkürler.

@P4$A Hocama özel teşekkürlerimi sunarım...
Eline Sağlık http güvenli değildi sanki
 

Bunjo

Uzman üye
14 Ara 2020
1,592
1,890
I Won
hocam hatta sey duydum https her veri sifreleniyor hiç bir iss kurumu göremiyor ama http olunca görebiliyorlar ssl neden bu kadar önemli
Aynı durum Telnet protokolü için de geçerli. Düşün bilgisayarınla bir yere bağlanıyorsun ve bir post isteği yaparak veri gönderiyorsun, örneğin

{
username: "bunjo",
password: "password123123"
}

şeklinde ve bunlar saldırganlar tarafından kolay şekilde Wireshark gibi yazılımlarda okunup elde edilebiliyor. HTTP için de bu geçerli. Ama eğer şifrelenirse o şifrelemeyi çözmenin zorluğunu da sen düşün :)
 

BlackDynamite

Katılımcı Üye
7 Kas 2023
837
330
Aynı durum Telnet protokolü için de geçerli. Düşün bilgisayarınla bir yere bağlanıyorsun ve bir post isteği yaparak veri gönderiyorsun, örneğin

{
username: "bunjo",
password: "password123123"
}

şeklinde ve bunlar saldırganlar tarafından kolay şekilde Wireshark gibi yazılımlarda okunup elde edilebiliyor. HTTP için de bu geçerli. Ama eğer şifrelenirse o şifrelemeyi çözmenin zorluğunu da sen düşün :)
👌😊
 

Lihtg

Moderatör
15 Mar 2022
2,010
849
lihtgTHT.php
Hocam harika konu olmuş https ile farklarıyla ilgili bir başlık daha olsaydı güzel olurdu sanki. Elinize sağlık
 

Bunjo

Uzman üye
14 Ara 2020
1,592
1,890
I Won

Butcherb3y

Uzman üye
1 Eyl 2022
1,617
1,199
Anıtkabir

oqk18ir.png

lbn20fm.png
2q250vr.png



Merhabalar ben saldırı timlerinden Bunjo, bu konuda "HTTP" kavramını ve nasıl çalıştığını detaylıca açıklamaya çalışacağım.


HTTP (Hyper Text Transfer Protocol)

HTTP (Hypertext Transfer Protocol), internet üzerinde bilgi alışverişi için kullanılan bir iletişim protokolüdür. Bu protokol, istemci-sunucu modeline dayanır ve genellikle web tarayıcıları ile web sunucuları arasında kullanılır. HTTP, HTML, CSS, JavaScript gibi web sayfalarının yanı sıra resimler, videolar ve diğer medya dosyalarının transferinde de kullanılır.

HTTP'nin temel amacı, bir istemcinin bir web sunucusundan belirli bir kaynağı (örneğin, bir web sayfasını veya bir resmi) talep etmesi ve sunucunun bu talebe uygun bir yanıt vermesidir. Bu süreç, HTTP metotları, durum kodları, başlıklar ve diğer özelliklerle tanımlanmıştır.






HTTP İle HTTPS Karşılaştırması:

Güvenlik:
  • HTTP, verileri şifrelemeden transfer eder, bu nedenle iletilen veriler açık bir şekilde okunabilir. Bu durum, kullanıcıların kişisel bilgilerini veya hassas verilerini korumak için güvenli değildir.
  • HTTPS ise, SSL/TLS (Secure Socket Layer/Transport Layer Security) protokollerini kullanarak verileri şifreler. Bu, iletilen bilgilerin güvenli olmasını sağlar ve üçüncü tarafların verileri anlamasını zorlaştırır. Kullanıcıların bilgilerini korumak için daha güvenli bir seçenektir.
Güvenlik Sertifikası:
  • HTTP'de güvenlik sertifikası gerekmez. Veri şifrelenmez ve bu nedenle güvenlik sertifikasına ihtiyaç duyulmaz.
  • HTTPS'de ise, bir web sitesinin güvenilir olduğunu ve verilerin şifrelendiğini doğrulayan bir SSL/TLS sertifikası gereklidir. Bu sertifika, bir web sitesinin URL'sinin başındaki "https://" ile belirtilir.
Port Numarası:
  • HTTP, genellikle 80 numaralı portu kullanır.
  • HTTPS, genellikle 443 numaralı portu kullanır.
SEO (Search Engine Optimization) Etkisi:
  • Google ve diğer arama motorları, HTTPS kullanan siteleri teşvik etmektedir. HTTPS kullanan siteler, arama motoru sıralamalarında avantaj elde edebilir. Bu nedenle, güvenlik ve SEO açısından HTTPS tercih edilebilir.
Veri Bütünlüğü:

  • HTTPS, veri bütünlüğünü sağlamak için hash fonksiyonları kullanır. Bu, verilerin transfer sırasında değiştirilmediğini garanti eder.
  • HTTP'de ise, veri bütünlüğü sağlanmaz, bu nedenle veriler transfer sırasında değiştirilebilir.
Özetle, HTTPS, internet üzerinde daha güvenli bir iletişim sağlar ve bu nedenle özellikle kişisel veya hassas verilerin transfer edildiği durumlarda tercih edilir.


HTTP'nin Güvensiz Yanları:

HTTP bağlantıları şifrelenmemiştir ve bu nedenle veriler açık bir şekilde iletilir. Bu durum, ağ üzerindeki herhangi bir kişinin veya sistem tarafından verilerin kolayca okunabileceği anlamına gelir. Bu, kullanıcıların özel bilgilerini veya hassas verilerini korumak için yeterince güvenli değildir.

SSL (Secure Sockets Layer) veya daha modern versiyonu olan TLS (Transport Layer Security), iletişim kanalını şifreleyerek güvenliği artıran bir güvenlik protokolüdür. Bu protokoller, HTTP üzerinden iletilen verilerin şifrelenerek, verilerin sadece alıcı ve gönderen arasında anlaşılabilir olmasını sağlar.

Eğer bir web sitesi "http" protokolü kullanıyorsa, bu durumda veriler şifrelenmeden iletiliyor demektir ve bu, üçüncü tarafların bu verilere müdahale etme olasılığını artırır. Bu nedenle, özellikle kullanıcıların kişisel bilgilerini girdikleri veya hassas verilerini paylaştıkları durumlarda, web siteleri "https" protokolü kullanarak şifreleme sağlamalıdır. Bu, güvenli bir bağlantı kurularak verilerin gizliliği ve bütünlüğü sağlanır.

HTTP'nin çalışma prensiplerini şu şekilde sıralayabiliriz;




İstemci-Sunucu İlişkisi: HTTP, bir istemci-sunucu modeline dayanır. İstemci, genellikle bir web tarayıcısıdır ve kullanıcının isteğini sunucuya ileten taraftır.
Sunucu, istemcinin isteğine yanıt veren ve istemciye istenen bilgileri gönderen taraftır.

Tarayıcı Kontrolü: Tarayıcı, kullanıcının adres çubuğuna girdiği URL'yi önbelleğinde aratır, eğer bu veriye karşılık IP adresi varsa (anahtar-değer çiftleri) direkt yönlendirmesini yapar,
Eğer herhangi bir kayıt yok ise İstemci, tarayıcısındaki adres çubuğuna bir URL (Uniform Resource Locator) girer ve DNS (Domain Name System) kullanılıyorsa
URL'yi IP (Internet Protocol Address) haline getirmek için DNS sunucusuna başvrurur. ( IP adresi girerseniz tarayacı tekrardan gidip DNS sunucusuna başvurmaz. )

DNS Çözümleme: İstemci (Burada tarayıcı), girilen URL'in IP adresini belirlemek için DNS (Domain Name System) sunucusuna başvurduktan sonra çözümleme işleminin başlatılmasını DNS sunucusuna söyler.




DNS çözümleme süreci şu adımları takip eder:





DNS Sunucusu İstek ve Yanıt: Tarayıcı, DNS sunucusuna URL'nin IP adresini çözümlemesi için bir istek gönderir. DNS sunucusu, URL'nin karşılık geldiği IP adresini içeren bir yanıt gönderir.

DNS Sunucusundan Cevap Alma: DNS sunucusu, istenilen alan adının karşılık geldiği IP adresini bulup tarayıcıya cevap verir.
IP Adresi ile Bağlantı: Tarayıcı, aldığı IP adresi üzerinden web sitesine bağlantı kurar ve istenilen içeriği talep eder.


DNS çözümlemesi bittikten sonra;
TCP Bağlantısı Kurma: İstemci, belirlenen IP adresine TCP (Transmission Control Protocol) bağlantısı kurar. Bu bağlantı, istemci ve sunucu arasında güvenilir bir veri iletim kanalı sağlar.



HTTP İstek Metodu: İstemci, belirli bir kaynağa erişmek için bir HTTP isteği gönderir. Bu istek, bir HTTP metodu (GET, POST, PUT, DELETE, vb.) ve hedef URL'i içerir.


HTTP İstek Metodları:
GET: Belirtilen kaynağı almak için kullanılır. Genellikle web tarayıcıları tarafından kullanılan bir metottur. URL'de gömülü parametreleri kullanarak veri almak için kullanılır.

POST: Belirtilen kaynağa yeni bir veri eklemek için kullanılır. Genellikle form verilerini sunucuya göndermek için kullanılır. Veri gövdesinde iletilen bilgiler, URL'de değil, HTTP isteğinin gövdesinde bulunur.

PUT: Belirtilen kaynağı oluşturmak veya güncellemek için kullanılır. Özellikle RESTful servislerde kullanılır. Bir kaynak yoksa oluşturur, varsa günceller.

DELETE: Belirtilen kaynağı silmek için kullanılır. RESTful servislerde kaynağı silmek için kullanılır.

PATCH: Belirtilen kaynağın bir kısmını güncellemek için kullanılır. Kaynağı tamamen güncellemeden sadece belirli alanları değiştirmek amacıyla kullanılır.

HEAD: Belirtilen kaynağın sadece başlık bilgilerini almak için kullanılır. GET metoduna benzer, ancak sadece başlık bilgilerini alır, içeriği almaz.

OPTIONS: Belirtilen kaynağın desteklediği HTTP metotlarını sorgulamak için kullanılır. Sunucuya hangi metotları kullanabileceğinizi sormak için kullanılır.

TRACE: İstemci ve sunucu arasındaki iletişimi izlemek için kullanılır. Genellikle hata ayıklama veya güvenlik amaçlarıyla kullanılır.

CONNECT: Sunucu ile güvenli bir bağlantı (SSL/TLS) kurmak için kullanılır. Genellikle HTTPS trafiği için kullanılır.
En çok "GET" ve "POST" HTTP istek metodları kullanılır.



Header (Başlık): İstek başlıkları, isteğin ek bilgilerini içerir. Örneğin, tarayıcı türü, kabul edilebilir dil, içerik türü gibi bilgileri içerir.




HTTP başlıkları (headers), bir HTTP isteği veya yanıtının ek bilgilerini taşıyan bileşenlerdir.
Başlıklar, isteğin veya yanıtın içeriğini daha iyi anlamamıza ve yönetmemize yardımcı olur.




Bunları otomatize yapan bir araç istiyorsanız onu da anlattım.
Konu linki:
"GET Request" ile "Header" ve "Response" Bilgisi Çekmek


Bazı Header Başlıkları:


Genel Başlıklar:

Cache-Control: Önbellek kontrolü için kullanılır. Önbellek yönetimini belirlemek için kullanılır.

Connection: Bağlantı kontrolünü belirlemek için kullanılır. "Keep-Alive" gibi değerler alabilir.

Date: Yanıtın oluşturulduğu tarihi belirtir.

Pragma: HTTP/1.0 uyumlu önbellek kontrolü için kullanılır.

Trailer: İleti gövdesindeki trailer alanları hakkında bilgi verir.

Transfer-Encoding: İletinin transfer kodlamasını belirtir. Örneğin, "chunked" değeri.

Upgrade: Protokol yükseltmelerini belirtir. Örneğin, HTTP/2'ye geçiş için kullanılabilir.





İstek Başlıkları:

Host: İstek yapılan sunucunun adını belirtir. Virtual hosting durumlarında kullanılır.

User-Agent: İstemcinin kullanılan yazılımını belirtir. Sunucu, bu bilgiyi kullanıcı deneyimini optimize etmek için kullanabilir.

Accept: İstemcinin destekleyebileceği medya türlerini belirtir. Sunucu, bu bilgiyi kullanarak uygun bir içerik türü seçebilir.

Referer (sic): İstemcinin hangi sayfadan geldiğini belirtir. Sayfa izleme ve istatistik toplama amaçları için kullanılır.

Cookie: İstemcinin sunucuya daha önce gönderdiği tanımlama bilgilerini içerir. Oturum yönetimi için kullanılır.

Authorization: İstemcinin kimlik doğrulama bilgilerini içerir. Özellikle şifreli bağlantılarda (HTTPS) kullanılır.



Yanıt Başlıkları:

Location: Tarayıcıya yönlendirme yapmak için kullanılır. Özellikle 3xx durum kodlarıyla birlikte kullanılır.

Server: Sunucunun kullandığı yazılım veya servis adını belirtir.

Content-Type: Yanıtın içeriğinin tipini (text/html, application/json, image/jpeg, vb.) belirtir.

Content-Length: Yanıtın içeriğinin uzunluğunu (byte cinsinden) belirtir.

Set-Cookie: Tarayıcıya gönderilen yeni tanımlama bilgilerini belirtir.

ETag: Kaynağın güncel olup olmadığını kontrol etmek için kullanılır.




Durum Kodları: Sunucu, bir işlemin başarılı olup olmadığını belirten bir durum kodu gönderir (200 OK, 404 Not Found, 500 Internal Server Error, vb.).

1xx - Bilgi Mesajları (Informational)

  • 100 Continue: İstemcinin isteği devam edebilir; sunucu bekliyor.
  • 101 Switching Protocols: Sunucu, isteği başka bir protokole geçirme talebini kabul ediyor.

2xx - Başarılı İstek (Successful)

  • 200 OK: İstek başarıyla gerçekleştirildi.
  • 201 Created: İstek tarafından kaynak başarıyla oluşturuldu.
  • 204 No Content: İstek başarıyla gerçekleştirildi, ancak yanıtta içerik yok.

3xx - Yönlendirme (Redirection)

  • 301 Moved Permanently: Kaynak, kalıcı olarak başka bir konuma taşındı.
  • 302 Found (or Moved Temporarily): Kaynak, geçici olarak başka bir konuma taşındı.
  • 303 See Other: GET metodunu kullanarak başka bir konuma yönlendirme yapılması gerekiyor.
  • 304 Not Modified: Kaynak, istemcinin önbelleğinde bulunuyor ve değişmemiş.

4xx - İstemci Hatası (Client Error)

  • 400 Bad Request: İstek, sunucu tarafından anlaşılamadı veya uygun değil.
  • 401 Unauthorized: İstemci, kimlik doğrulaması gerektiren bir kaynağa erişmeye çalıştı, ancak kimlik doğrulaması başarısız.
  • 403 Forbidden: İstemci, kaynağa erişmeye yetkili değil.
  • 404 Not Found: İstenen kaynak bulunamadı.

5xx - Sunucu Hatası (Server Error)

  • 500 Internal Server Error: Sunucu, genel bir içsel hata ile karşılaştı.
  • 501 Not Implemented: Sunucu, isteği yerine getirecek yeteneğe sahip değil.
  • 502 Bad Gateway: Sunucu, geçerli bir yanıt almak için geçerli bir geçit sunucusuna ihtiyaç duyuyor.
  • 503 Service Unavailable: Sunucu şu anda kullanılamıyor (genellikle bakım nedeniyle).

Bu durum kodları, HTTP protokolüyle ilgili istemcilerin ve sunucuların iletişimlerini daha iyi kontrol etmelerini sağlar.


Header ve İçerik (Body):Yanıt başlıkları, istemciye ek bilgiler sağlar. Yanıt içeriği, isteğe bağlı olarak bir kaynağın içeriğini içerir (HTML sayfası, resim, JSON verisi, vb.).

TCP Bağlantısının Kapatılması veya Tekrar Kullanılması: Bağlantının kapatılması veya tekrar kullanılması, HTTP sürümü ve "Connection" başlığına bağlı olarak belirlenir. Keep-Alive özelliği, aynı bağlantının bir dizi istek ve yanıt arasında açık kalmasına olanak tanır.

Tarayıcı İşleme ve Gösterim: İstemci, aldığı yanıtı işleyerek, kullanıcıya görüntülenebilir bir içerik sunar.

CORS (Cross-Origin Resource Sharing): Güvenlik önlemleri olarak, tarayıcılar farklı alan adlarından gelen kaynaklara erişim konusunda kısıtlamalar getirebilir. CORS, bu tür kısıtlamaların aşılmasına yardımcı olan bir mekanizmadır.



CORS Nedir?

CORS (Cross-Origin Resource Sharing), farklı kökenlere (origin) sahip web sayfalarının birbirleriyle kaynakları paylaşmasını sağlayan bir güvenlik önlemidir. Bu, tarayıcı güvenliği nedeniyle, bir web sayfası sadece aynı kök (origin) üzerindeki kaynaklara doğrudan erişebileceği bir politika olduğunu düşünürken, CORS, farklı kökten kaynaklara erişimi kontrol eder.


Web sayfaları arasında kökten köke (cross-origin) erişim sağlama ihtiyacı ortaya çıkabilir, özellikle bir web sayfasının içeriği başka bir kaynaktan (örneğin, başka bir sunucu veya domain) alındığında. CORS, bu tür durumlarda güvenli bir erişim sağlamak için kullanılır.


Örnekleyelim.



Basit İstek (Same-Origin)




Web Sayfası Alanı (Origin): https://web.sayfa.com
API Sunucusu Alanı: (API): https://api.servis.com



Web Sayfası İsteği:


Web sayfasındaki JavaScript kodu, aynı alan içindeki bir API'ye basit bir GET isteği yapmak istiyor.



JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.servis.com/data', true);
xhr.send();

İstek Sonucu:


Domain ile API servisi aynı alan adına sahip olduğu için CORS kontrolü olmadan istek gönderilir.



Cross-Origin İstek (CORS)


Web Sayfası İsteği:



Web sayfasındaki JavaScript kodu, farklı bir etki alanındaki API'ye GET isteği yapmak istiyor.
JavaScript:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://başka.api.servis.com/data', true);
xhr.send();

Sonuç:Tarayıcı bu isteği önce kontrol eder. Eğer API sunucusu, isteğin geldiği alanı kabul ediyorsa (CORS başlıklarıyla belirlenir),
istek başarılı bir şekilde gerçekleştirilir. Aksi takdirde, tarayıcı isteği engeller.



CORS Başlıkları


API sunucusu, hangi etki alanlarından gelen isteklere izin verileceğini belirleyen CORS başlıklarını kullanır.
Örneğin, aşağıdaki gibi başlıklar API sunucusu tarafından gönderilebilir:





Anlatacaklarım bu kadar.

Okuduğunuz için teşekkürler.

@P4$A Hocama özel teşekkürlerimi sunarım...
Eline sağlık emeğine sağlık hocam
 

Lihtg

Moderatör
15 Mar 2022
2,010
849
lihtgTHT.php
HTTP'nin neden güvensiz olduğunu ve HTTPS ile alakalı daha sonra bir konu açıp detaylıca anlatacağımı belirtmeme rağmen yine de teşekkürler daha sonra açacağım konuyu bu konuya ekledim.


Teşekkürler.
Ben ufak bir başlık olarak beklemiştim hocam diğer konuda detaylı değineceksiniz sanırım (y)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.