什么是XXE
服务器加载外部实体声明<!ENTITY 实体名称 SYSTEM "URI">
,导致被入侵。
XXE的特征
使用了LodXML( )函数。
代码案例
$xmlfile = file_get_contents("php://input"); // php://input 是个可以访问请求的原始数据的只读流。 获取客户端输入的内容
$dom = new DOMDocument(); // 初始化XML解析器
$dom->loadXML($xmlfile); // 加载客户端输入的XML内容
$xml = simplexml_import_dom($dom); // 获取XML文档节点,如果成功返回simpleXMLElement对象,如果失败返回Flase
$xxe = $xml->xxe; //获取simpleXMLElement对象中的节点 xxe
$str = "$xxe \n";
echo $str;
防止的XXE,一行代码解决:
// 在加载文档代码上面声明
libxml_disable_entity_loader(true); //禁止使用外部实体