使用 php 清理外部 xml 文件
Sanitize an external xml file with php
这是我的问题:
function parse_xml_to_json($url) {
$fileContents = file_get_contents($url);
$simpleXml = simplexml_load_string($fileContents, null
, LIBXML_NOCDATA);
$json = json_encode($simpleXml);
return $json;
}
$jsonto = parse_xml_to_json('myxmlfile.html');
echo $jsonto;
本质上,我需要使用来自外部源的 XML 文件并循环显示一些数据。
我创建了一个从外部URL(file_get_contents)获取内容的函数,然后我把XML的字符串变成一个对象(我用LIBXML_NOCDATA作为参数,因为它包含 ),在我将对象转换为 JSON 文件之后,在最后一步,我回显了结果。
到目前为止一切顺利,它有效,但我想知道如果 XML 文件包含恶意脚本,我是否可以做任何事情。
函数 simplexml_load_string 和 JSON 编码是否足以防止恶意脚本或无效 XML?
您的代码容易受到拒绝服务 (DOS) 攻击。
$fileContents = file_get_contents($url);
这可能会超出您的内存限制。或者接近,但要花很长时间(在提供大量内容后,您从中间的陈旧服务器请求数据 - 然后每两秒只有一些小字节)。所以你的脚本会在消耗内存时“挂起”。
如果脚本随后可以通过另一个 HTTP 请求多次触发,这会消耗您的服务器资源(echo 语句表明这是完全可能的)。
这是我的问题:
function parse_xml_to_json($url) {
$fileContents = file_get_contents($url);
$simpleXml = simplexml_load_string($fileContents, null
, LIBXML_NOCDATA);
$json = json_encode($simpleXml);
return $json;
}
$jsonto = parse_xml_to_json('myxmlfile.html');
echo $jsonto;
本质上,我需要使用来自外部源的 XML 文件并循环显示一些数据。
我创建了一个从外部URL(file_get_contents)获取内容的函数,然后我把XML的字符串变成一个对象(我用LIBXML_NOCDATA作为参数,因为它包含 ),在我将对象转换为 JSON 文件之后,在最后一步,我回显了结果。
到目前为止一切顺利,它有效,但我想知道如果 XML 文件包含恶意脚本,我是否可以做任何事情。
函数 simplexml_load_string 和 JSON 编码是否足以防止恶意脚本或无效 XML?
您的代码容易受到拒绝服务 (DOS) 攻击。
$fileContents = file_get_contents($url);
这可能会超出您的内存限制。或者接近,但要花很长时间(在提供大量内容后,您从中间的陈旧服务器请求数据 - 然后每两秒只有一些小字节)。所以你的脚本会在消耗内存时“挂起”。
如果脚本随后可以通过另一个 HTTP 请求多次触发,这会消耗您的服务器资源(echo 语句表明这是完全可能的)。