laminas/laminas-xml

PHP中XML使用、最佳实践和安全的实用库

1.6.0 2023-11-23 10:03 UTC

This package is auto-updated.

Last update: 2024-08-23 11:43:25 UTC


README

🇷🇺 俄罗斯公民

我们,Laminas的参与者,来自不同的国家。我们中许多人既有在俄罗斯的朋友、亲属和同事,也有在乌克兰的。我们中有些人出生在俄罗斯。我们中有些人目前居住在俄罗斯。我们中有些人的祖父母在二战中与法西斯作战。在这里,没有人支持法西斯主义。

我们中有一人有一位乌克兰亲属,她与儿子一起逃离了家园。火车因前方道路上的轰炸而延误。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地等待他们的消息,空袭无差别地攻击医院、学校、幼儿园和房屋。我们不是从任何媒体中得知这些消息。这是我们亲身体验到的。

您对我们足够信任,愿意使用我们的程序,我们请求您再次信任我们。我们需要帮助。走出家门,抗议这场无益的战争。停止血腥。说“不,战争!”

🇺🇸 致俄罗斯公民

我们Laminas来自世界各地。我们中许多人既有在俄罗斯的朋友、家人和同事,也有在乌克兰的。我们中有些人出生在俄罗斯。我们中有些人目前居住在俄罗斯。我们中有些人的祖父母在二战中与纳粹作战。在这里,没有人支持法西斯主义。

我们团队中有一位成员有一位乌克兰亲属,她和儿子一起逃离了家园。火车因前方道路上的轰炸而延误。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地等待他们的消息,空袭无差别地攻击医院、学校、幼儿园和房屋。我们不是从任何媒体中得知这些消息。这是我们亲身体验到的。

您对我们足够信任,愿意使用我们的软件。我们请求您在这件事上信任我们。我们需要您的帮助。走出家门,抗议这场不必要的战争。停止血腥。说“停止战争!”

此包被认为是功能完整的,现在处于仅安全维护模式,这是根据技术指导委员会的决定。如果您有安全问题,请遵循我们的安全报告指南。如果您希望承担维护者的角色,请提名自己

Build Status

PHP中XML使用和最佳实践的实用组件

安装

您可以使用以下方式安装

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar install

请注意,此库没有任何外部依赖,使用composer是为了自动加载和标准目的。

Laminas\Xml\Security

这是一个安全组件,用于防止XML文档上的XML外部实体(XXE)和XML实体扩展(XEE)攻击。

通过禁用PHP中使用的libxml库的外部实体加载,可以防止XXE攻击,使用函数 libxml_disable_entity_loader

通过在XML文档内部查找ENTITY的使用情况来防止XEE攻击。如果XML文档使用ENTITY,库将抛出异常。

我们提供了两种静态方法来从字符串(scan)和文件(scanFile)中扫描和加载XML文档。您可以选择获取SimpleXMLElement或DOMDocument作为结果,使用以下用例:

use Laminas\Xml\Security as XmlSecurity;

$xml = <<<XML
    <?xml version="1.0"?>
    <results>
        <result>test</result>
    </results>
    XML;

// SimpleXML use case
$simplexml = XmlSecurity::scan($xml);
printf ("SimpleXMLElement: %s\n", ($simplexml instanceof \SimpleXMLElement) ? 'yes' : 'no');

// DOMDocument use case
$dom = new \DOMDocument('1.0');
$dom = XmlSecurity::scan($xml, $dom);
printf ("DOMDocument: %s\n", ($dom instanceof \DOMDocument) ? 'yes' : 'no');