Pass ve zend çerçevesinde bir oturum kimliği geri

0 Cevap php

Birincisi, evet ben bu büyük bir güvenlik olduğunu biliyorum NONO. Ama senaryo şudur;

Bir webshop kasada i bir ödeme ağ geçidi, onların SSL üzerinden yapabilirsiniz vekil benim çıkış formu kullanabilirsiniz.

(Aşağıdaki url Sadece teori, diğer adresler uygulama için geçerlidir)

Çalışır yolu, web sitesi, https :/ / gateway.org / güvenli-tunnel.php bu? Url = http://myshop.com/cc- gibi sorguda bir url geçirilmesi için kullanıcıyı yönlendirir form.php <- urlencoded edilmesi gerekmektedir.

Belgedeki url bazı sihirli serpin - - güvenli-tünel url ister ve kullanıcıya gösterir.

Şimdi ben cc-form.php url oturum kimliği geçmek istiyorum ve bu kısım çalışma var. AMA istenen sayfa geçirilen oturum kimliğini almak yok.

Bu konuda herhangi bir fikir?

Aşağıdaki benim application.ini dan

resources.session.name = UPSSESSID
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = off
resources.session.referer_check = off
resources.session.remember_me_seconds = 864000

Ayrıca araştırma yaparken i Suoshin uzantısı bazı sorunlara neden olabilir bulundu, bu yüzden. Htaccess bu ekledi

php_flag suhosin.session.cryptua off

Benim ödeme formu için bir yol kullanın

$this->_helper->url->url(array(session_name() => Zend_Session::getId()), 'payment')

EDIT: Possible, rather dodgy solution

Aslında benim önyükleme dosyasında _initApplication() Bu takarak oturumu geri başardı. Bu oldukça tehlikeli, bu yüzden herkes daha iyi bir bilen varsa - daha ZF'ish - yolu tavsiye lütfen!

    if(isset($_GET[$appConfig->resources->session->name])) {
        session_id($_GET[$appConfig->resources->session->name]);
    }

EDIT: DOH!

Eh .. Önceki düzenleme gerekli değildir çıkıyor. I bootstrap için önceki satırları ekledim hemen önce ben de url düzeni değişti.

Için /pay?UPSSESSID={session-id-here} /pay/UPSSESSID/{session-id-here} onu Değiştirildi - Ve aslında sorunun kökü oldu: (

Şimdi ben bootstrap gelen çizgileri kaldırdık ve sessionId i düzgün restore.

Benim hatam!

0 Cevap