libxml_disable_entity_loader

(PHP 5 >= 5.2.11)

libxml_disable_entity_loader Отключение возможности загрузки сущностей из внешних источников

Описание

bool libxml_disable_entity_loader ([ bool $disable = true ] )

Отключение/включение возможности загружать внешние сущности.

Список параметров

disable

Отключение (TRUE) или включение (FALSE) libxml расширений (также как в DOM, XMLWriter и XMLReader) для загрузки внешних сущностей.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

Коментарии

Автор:
Using this function you can prevent a vulnerable to Local and Remote File Inclusion attacks.

You'll see it in an example where I load and validate the following string:

<!DOCTYPE scan [<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">]>
<scan>&test;</scan>

One way to prevent that the file in given back is to set this value to 0.
Please take a closer look at the release of symfony 2.0.11
2012-02-29 20:23:52
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
This function was reported to be not thread safe. So this might affect php-scripts on the same server.
2013-12-25 13:56:59
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
Be mindful that this also disables url loading in simplexml_load_file() and likely other libxml based functions that deal with URLs
2014-01-27 18:36:51
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
This also seems to have an impact on <xsl:import /> statements if this is applied when loading XSLT for the XSLTProcessor class.
2014-03-25 12:23:12
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
If is called 
libxml_disable_entity_loader(true);

, it causes that new SoapClient(.) fails with

SOAP-ERROR: Parsing WSDL: Couldn't load from 'D:\path/dm_operations.wsdl' : failed to load external entity "D:\path/dm_operations.wsdl

because this wsdl imports a xsd as an another external file.
Tested on php 7.1.12, win x64.
2018-01-04 11:48:12
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
In PHP 8.0 and later, PHP uses libxml versions from 2.9.0, libxml_disable_entity_loader is deprecated.
so it is now safe to remove all `libxml_disable_entity_loader` calls on php8

if you want Backwards Compatibility

use this snippet

if (\PHP_VERSION_ID < 80000) {
    libxml_disable_entity_loader(true);
}
2021-01-07 12:27:21
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html
There is an extra \ should be deleted before PHP_VERSION_ID in the code which suconghou posted 2 years ago.

if (PHP_VERSION_ID < 80000) {
    libxml_disable_entity_loader(true);
}
2023-04-27 05:46:59
http://php5.kiev.ua/manual/ru/function.libxml-disable-entity-loader.html

    Поддержать сайт на родительском проекте КГБ