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!