PHP nasıl başka bir etki alanından oturum değişkenleri geçtikleri

3 Cevap php

Ben başka bir etki bir iFrame sayfa bir etki $ _SESSION değişkenleri geçmesi gereken bir durumla karşılaşmadım. Ben boşuna çeşitli yöntemler çalışırken son 16 gün geçirdim. Ben tek mantıklı yolu iFrame çağırır url değişkenleri kodlamak ve inci iFrame sayfa bunları çözmek için olacağını düşünüyorum. Ben bu konuda gitmek nasıl emin değilim ve ben bulabilirim herhangi bir örnek, yardım vb arıyorum.

Her türlü öneriniz için teşekkür ederiz.

İşte yapmak ne çalışıyorum bir örnek ...

Örnek:

<!-- Note only using hidden as I didn't want to build the form at test phase-->
<form name="test" method="post" action="iframe_test.php">
<input type="submit" name="Submit" />
<input type="hidden" name="fName" value="abc" />
<input type="hidden" name="lName" value="def" />
<input type="hidden" name="address1" value="ghi" />
<input type="hidden" name="address2" value="jkl" />
<input type="hidden" name="country" value="mno" />
<input type="hidden" name="postal_code" value="pqr" />
<input type="hidden" name="city" value="stu" />
<input type="hidden" name="retUrl" value="vwx">
<input type="hidden" name="decUrl" value="yz">

So from here I am hitting the iframe_test.php and doing the following: PHP Kod: function StripSpecChar($val) { return (preg_replace('/[^a-zA-Z0-9" "-.@\:\/_]/','', $val)); }

foreach ($_POST as $key => $val) { 
$_SESSION[$key] = StripSpecChar($val);   
} 

and I get a session array that looks like this: Kod:

Array
(
    [fName] => abc
    [lName] => def
    [address1] => ghi
    [address2] => jkl
    [country] => mno
    [postal_code] => pqr
    [city] => stu
    [retUrl] => vwx
    [decUrl] => yz
)

Hala tüm iyi şimdiye kadar .... iFrame çağrı

Kod:

<body>
Some page stuff here

<div align="center"><span class="style1"><strong>This is the iFrame Page</strong></span>
</div>
<div align="center">
<iframe src="https://www.other_domain.org/iframe/reserve.php" width="500" height="350" frameBorder="0"></iframe>
</div>

</body>

Yani NASIL almak yok ...

$_SESSION['fName']['abc']; 
$_SESSION['lName']['def']; 
$_SESSION['address1']['ghi']; 
$_SESSION['address2']['jkl']; 
$_SESSION['country']['mno']; 
$_SESSION['postal_code']['pqr']; 
$_SESSION['city']['stu']; 
$_SESSION['retUrl']['vwx']; 
$_SESSION['decUrl']['yz']; 

ve ben arıyorum kodlanmış url çevirmek? Ben bunun nasıl oturumu yeni etki iFrame sayfada vars olarak oturumu geri vars almak için yapılır daha fazla kez ...

3 Cevap

Kullan serialize() ve base64_encode() onu bozması ve (çoğunlukla) yapısını koruyarak olmadan veri aktarmak için.

O zaman nasıl çalıştığını rakamlar kimse keyfi veri enjekte edebilir, ama bu yapmak istediğiniz buysa, bu iş olacak, çünkü iyi bir uygulama değil.

Bir assoicative dizi çekmek ve fonksiyonu ile bir sorgu dizeye dönüştürebilirsiniz http_build_query

Not: Deftere ikinci dizi bir oturum dizinin doğru çıkış değil.

Alıcı sayfa / etki, sadece $ _SESSION dizi (veya ne olursa olsun bunu yapmak gerekir) içine expected parametreleri sterilize / sorgu dizesi ve gerçekleşecek.

Bu serialize / unserialize olarak sadece diziler kullanılmaktadır gibi bir şey kullanmaktan daha güvenlidir.

Neden sadece otehr etki session id göndermek (ve onlar aynı oturum depolama alt tabakayı okuyabilirsiniz varsayarak) kullanıp orada oturum kimliği olarak, örneğin

<?php
// catch remote session id, validate and reassociate
if (md5($_GET['exported_sessid'], $shared_secret) == $_GET['check_hash']) {
      // (basic CSRF check
      session_id($_GET['exported_sessid']);
}
session_start();
....

C.