chengdu 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu Chrome'da SameSite Çerez Güncellemesi

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,442
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 8 Gün
Başarım Puanı
1,051
MmoLira
695,207
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

kkfrvlvxjh5ct7d0gk5zzeitniunabolga87280a2060448ab.png


Yakın zamanda, bir web sitesine bir komut dosyası yüklendiğinde, ancak ön ucu başka bir web sitesinde kullanıldığında, komut dosyalarının en son Chrome tarayıcısında düzgün çalışmadığına ilişkin şikayetler aldık; CROSS etki alanı kullanımı denir.


İşte fark ettiğimiz bazı durumlar. Örneğin:

Zaman Aralıkları Takvimi: zaman aralıkları yanıt vermiyor ve seçilemiyor

-"Tarihe göre arama" özelliğine sahip Rezervasyon komut dosyaları, ilk aramadan sonraki bir sonraki adımda bunları 1/1/1970 olarak görüntüler

Catering Sistemi: sepete bir miktar eklendi ancak sepet seçildiğinde boş olduğu belirtiliyor

- Randevu Planlayıcı, Hizmet Rezervasyonu komut dosyaları, aralıklar seçilemez vb.

Ne yazık ki bu, bir süre önce yapılan ve çerezlerin ve özellikle SameSite çerezinin nasıl işlendiğini etkileyen Google Chrome güncellemesiyle ilgilidir. Bu, tarayıcının önceki sürümlerinde bir sorun değildi ancak Google yakın zamanda bu güvenlik politikasını uygulamaya karar verdi. Yaptığı şey, web sitesi sahiplerinin SameSite çerezinin durumunu açıkça ayarlamasını zorunlu kılmaktır, aksi takdirde varsayılan olarak "Lax" durumuna döner. Bunun komut dosyamızı (ve genel olarak çerezlerimizi) etkileme şekli, aynı etki alanından bir istek yürütülmezse tarayıcının çerezin oluşturulmasına izin vermemesidir. Scriptlerimiz tarayıcı çerezlerini kullanmamaktadır ancak çok önemli olan ve web sitesindeki kullanıcı isteklerini benzersiz bir şekilde tanımlayan oturum çerezi bulunmaktadır. Kaydedilmediği ve tarayıcı tarafından aktarılmadığı takdirde otomatik olarak yeni bir oturum çerezi oluşturulur. Tarayıcı bunu yaptığında, oturum çerezi artık aynı olmadığından betiğin tüm verileri kaybolur. Tarayıcı isteğinin başka bir kullanıcı tarafından yapıldığı belirlendi ve sunucudaki oturumunda kaydedilenler artık kullanılamıyor (oturum kimliği artık farklı olduğundan). Bu nedenle scriptler herhangi bir seçime, slot tıklamasına, seçilen tarihe, sepete eklenen ürüne vb. tepki vermiyor gibi görünüyor. Her şey ayarlanmamış veya seçilmemiş gibi görünüyor.

Bu nedenle oturum çerezi çok önemlidir ve ayarlanması gerekir. Bizim script ile kullanıcı detayları arasındaki bağlantımızdır ve o olmadan scriptler çalışmaz. SameSite çerezi oturum çerezini engellediğinden (açıkça ayarlanmamışsa) bunun düzeltilmesi gerekir. Bunu tüm komut dosyalarımızda yaptık, ancak daha önce komut dosyaları satın alıp indiren ve bunları alanlar arası kullanan tüm müşterilerimiz Chrome tarayıcısında bu sorunu yaşayacaktır. Bu sorunun çözülmesi basittir ve aşağıda bunu kendi başınıza nasıl çözebileceğinizi ayrıntılı olarak açıklayacağız.

ÖNEMLİ: Bu güncelleme, en son çerçevemizi temel alan komut dosyalarına zaten dahil edilmiştir!

Söylediğimiz gibi, SameSite çerezi ayarlanmamışsa, varsayılan olarak "Lax" durumuna geçer, bu da üçüncü taraf çerezlerinin (diğer alanlardaki çerezlerin) kaydedilmesini ve kullanıcı isteklerine aktarılmasını engeller. Bu durumda, çerezler yalnızca tarayıcının URL'sindeki alan adı çerezin alan adı (birinci taraf çerezi) ile eşleştiğinde ayarlanır. Yapmamız gereken, üçüncü taraf çerezlerin web sitesi genelinde kullanıcıları izlemesine olanak tanıyan bu çerez durumunu "Yok" olarak ayarlamaktır. Ancak "SameSite=None" olarak işaretlenen çerezlerin aynı zamanda "Güvenli" olarak da işaretlenmesi gerektiğini unutmayın. Bu, tarayıcı için gereklidir ve bu aynı zamanda bu çerezin yalnızca HTTPS üzerinden yapılan istekler yoluyla oluşturulacağı ve gönderileceği anlamına da gelir.


Çözüm

ÖNEMLİ: Bu değişiklik yalnızca uzak web sitelerine eklenen ön uç entegrasyonu için javascript kodunu kullanan komut dosyalarını etkiler. Komut dosyasını aynı etki alanında kullanıyorsanız veya komut dosyalarından birini PHP entegrasyon koduyla birlikte kullanıyorsanız bu güncellemeye gerek yoktur.

Komut dosyanız güncelleme kategorisindeyse SameSite çerez bayrağını "Yok" ve "Güvenli" olarak ayarlamanız gerekir.



Bu nasıl yapılır?

1) Bu dosyayı açın:

app/controllers/pjFront.controller.php

2) Şu adı verilen işlevi bulun: korumalı statik işlev AllowCORS()

3) Bu satırın başlık listesine eklenmesi gerekir:

başlık('Set-Cookie: '.session_name().'='.session_id().'; SameSite=None; Secure');


yani liste buysa:

başlık('P3P: CP = "TÜM DSP COR CUR ADM TAI BİZİM IND COM NAV INT"');

başlık("Erişim-Kontrol-İzin Ver-Origin: $origin");

başlık ("Erişim Kontrolü-İzin Verme-Kimlik Bilgileri: doğru");

başlık ("Erişim Kontrolü-İzin Verme Yöntemleri: POST, GET, SEÇENEKLER");

başlık ("Erişim-Kontrol-İzin Ver-Başlıklar: Köken, X-İstenen-İle");


buna benzer bir satır daha olacak:

başlık('P3P: CP = "TÜM DSP COR CUR ADM TAI BİZİM IND COM NAV INT"');

başlık("Erişim-Kontrol-İzin Ver-Origin: $origin");

başlık ("Erişim Kontrolü-İzin Verme-Kimlik Bilgileri: doğru");

başlık ("Erişim Kontrolü-İzin Verme Yöntemleri: POST, GET, SEÇENEKLER");

başlık ("Erişim-Kontrol-İzin Ver-Başlıklar: Köken, X-İstenen-İle");

başlık('Set-Cookie: '.session_name().'='.session_id().'; SameSite=None; Secure');

ÖNEMLİ: Komut dosyası, geçerli SSL'ye sahip bir web sitesi olan HTTPS'nin altına kurulmalıdır!


Komut dosyası HTTPS altında kurulmamışsa ancak etki alanında SSL varsa:

1. Bu dosyayı app/config/config.inc.php açın

2. Kurulum URL'sini http yerine https ile başlayacak şekilde değiştirin ve kaydedin.

3. Entegrasyon kodunu kullanıldığı tüm sayfalarda değiştirin.

Komut dosyanızın artık Chrome'da da çalıştığını doğrulamak için tarayıcı önbelleğini temizleyebilir ve testler yapabilirsiniz!

SameSite çerezi ve olası durumları ile bununla ilgili Chrome güncellemesi hakkında ayrıntıların yer aldığı bazı bağlantılar:


 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst