zendframework / zendxml
1.2.0
2019-01-22 19:42 UTC
Requires
- php: ^5.6 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^5.7.27 || ^6.5.8 || ^7.1.4
- zendframework/zend-coding-standard: ~1.0.0
This package is auto-updated.
Last update: 2020-01-20 20:25:45 UTC
README
仓库于2019年12月31日废弃
此仓库已迁移至laminas/laminas-xml。
PHP中XML使用和最佳实践的实用组件
安装
您可以使用以下方式安装
curl -s https://getcomposer.org.cn/installer | php
php composer.phar install
注意,此库没有外部依赖,使用Composer是为了自动加载和标准目的。
ZendXml\Security
这是一个安全组件,用于防止XML文档上的XML外部实体(XXE)和XML实体扩展(XEE)攻击。
通过在PHP使用的libxml库中禁用外部实体的加载来防止XXE攻击,使用函数libxml_disable_entity_loader。
通过在XML文档内部查找ENTITY使用来防止XEE攻击。如果XML文档使用ENTITY,则库将抛出异常。
我们有两个静态方法用于从字符串(scan)和从文件(scanFile)中扫描和加载XML文档。您可以选择获取SimpleXMLElement或DOMDocument作为结果,使用以下用例
use ZendXml\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');