-1

我需要用 php 读取会话内容。会话由名为 easybasket 的购物车脚本创建,我需要提取会话中存储的数据,以便保存到 MySql 表中。数据似乎以 XML 格式存储。以下是我的会议内容:

array (size=3)
'username' => string 'test@gmail.com' (length=21)
'nombre' => string 'Joe Smith' (length=16)
'basket' => string '<basket version="1.0" timestamp="2013-05-04T12:58:37+00:00">
<items count="2" quantity="4" subtotal="1460" postage="0" total="1460" paypal="yes"     google="no">
<item unit-price="380.00" quantity="2" subtotal="760" postage="0" total="760">
  <title>DANCER CATAMARAN ADULTS</title>
  <price>380.00</price>
</item>
<item unit-price="350.00" quantity="2" subtotal="700" postage="0" total="700">
  <title>DANCER CATAMARAN CHILDREN</title>
  <price>350.00</price>
</item>

4

2 回答 2

1

使用simpleXML浏览 $_SESSION['basket'] 的内容

$xml = simplexml_load_string($_SESSION['basket']);

例子 :

$xml = simplexml_load_string($_SESSION['basket']);
foreach( $xml->items->item as $item) {
    echo $item['quantity'] . ' - ' . $item->title . '<br>';
}

输出 :

2 - DANCER CATAMARAN ADULTS
2 - DANCER CATAMARAN CHILDREN
于 2013-05-04T13:55:10.667 回答
0

不要相信这样的会话数组......

如果攻击者在 webhoster 为所有用户使用相同的会话目录时设法将数据注入会话,则现在可以进行 xml 注入或 xml 条目注入。

在 simpelXml 之前使用 libxml_disable_entity_loader (参见http://www.php.net/manual/en/function.libxml-disable-entity-loader.php )以防止 xml 条目注入

于 2013-05-04T17:19:47.027 回答