İyzico Ödeme Sonrası Session Silinme Hatası

PHP

Merhaba dostlarım. Karşılaştığımız sorunun özeti, İyzico ödeme işlemi sonrasında ödeme durumunu kontrol ettiğimizde oturumu aniden silmesi ve kullanıcının oturumunu kapatmasıdır. Bu sorun, kodlarımızla doğrudan ilişkili gibi görünse de aslında kökeni Google'ın çerezlerin daha güvenli kullanılabilmesi için yaptığı bir güncellemeden kaynaklanmaktadır.

Google'ın bu güncellemesi, çerezlerin SameSite politikaları üzerindeki sıkılaştırılmasını içermektedir. SameSite politikaları, tarayıcı tabanlı güvenlik saldırılarına karşı koruma sağlamak amacıyla tasarlanmıştır. Bu politikalara göre, çerezlerin güvenliğini artırmak için çerezlerin hangi durumlarda gönderilebileceği sıkı bir şekilde denetlenmektedir.

Bizim durumumuzda, İyzico ödeme sonrası kontrol işleminde çerezlerin nasıl yönetildiğine ve gönderildiğine dikkat etmek önemlidir. Eğer oturumun beklenmedik şekilde silinmesi gibi bir sorunla karşılaşıyorsak, çözüm genellikle çerez ayarlarını doğru şekilde yapılandırmak ve SameSite=None gibi uygun ayarlamaları yapmaktır. Bu, kullanıcıların oturumlarının beklenmedik şekilde sonlanmasını önlememize yardımcı olacaktır.

Bu yazı, İyzico entegrasyonu ve çerez yönetimi hakkında daha derinlemesine bilgi sağlamak amacıyla önemlidir. Çünkü teknolojideki bu tür güncellemeler, web uygulamalarının güvenliğini artırma ve kullanıcı deneyimini iyileştirme potansiyeline sahiptir.

SameSite Nedir?

"SameSite" bir çerez özelliğidir ve web tarayıcıları tarafından desteklenen bir güvenlik önlemidir. Bu özellik, tarayıcı tabanlı güvenlik saldırılarını önlemek için tasarlanmıştır, özellikle cross-site request forgery (CSRF) saldırılarına karşı koruma sağlar.

SameSite Değeri Türleri

  1. None: Çerezin aynı site dışındaki isteklere de gönderilmesine izin verir. Bu seçenek, çoğu durumda oturum açma gibi kullanıcı etkileşimlerinde gereklidir.

  2. Lax: Yalnızca GET metodu ile gönderilen çerezleri, aynı site içindeki isteklere gönderir. Bu seçenek, bazı durumlarda tercih edilebilir ancak aynı site içindeki POST gibi diğer istek türlerinde gönderilmeme riski vardır.

  3. Strict: Çerezin yalnızca aynı site içindeki isteklere gönderilmesini sağlar. Diğer tüm durumlarda çerez gönderilmez.

İyzico Session Silme Hatası Çözümü

Ben projelerimi genelde Codeigniter 3 Framework'ü ile geliştirmekteyim ve Cg3'de bu sorunun çözümü şu şekilde çözdüm.

application/config/config.php dosyasını açın ve aşağıda ki cookie_path değişkenini bulun.

$config['cookie_path'] = '/;

Aşağıdaki kodla değişin.

$config['cookie_path'] = '/; SameSite=None';

Bu şekilde sorunu çözdüm fakat PHP 7.4 sürümünde birkaç session hatası ile karşılaştım.

Bu uygulamayı Salt PHP'de aşağıda'ki gibi yapabilirsiniz.

session_set_cookie_params(['samesite' => 'None']);
session_start();

SameSite, çerezlerin güvenliğini artıran bir önlemdir ve çoğu web uygulaması için önemlidir. Doğru ayarlamalar yapıldığında, tarayıcı tabanlı saldırı riskleri azalır ve kullanıcı güvenliği sağlanmış olur. Bu nedenle, geliştiricilerin SameSite ayarlarını doğru bir şekilde yapılandırarak web uygulamalarını güvence altına almaları önemlidir.

Umarım yazım faydalı olmuştur.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!