J'ai PHP code qui utilise la fonction LoadXML (ainsi que d'autres fonctions XML).
La fonction LoadXML est-elle vulnérable à l'attaque XXE? À savoir, si le XML contient des entités externes, sera-t-elle interprétée?
Cette fonction est-elle vulnérable aux autres attaques basées sur XML? E.G., le milliard rit DOS attaque?
Pouvez-vous me référer à une liste de fonctions vulnérables à XXE et à d'autres attaques liées à XML?
Je sais qu'il est possible de bloquer facilement les attaques XXE dans PHP en modifiant les paramètres. Pourtant, je serai heureux d'obtenir des réponses aux questions que j'ai soulevées.
La fonction LoadXML est-elle vulnérable à l'attaque XXE? À savoir, si le XML contient des entités externes, sera-t-elle interprétée?
Par défaut, non.
Les entités externes ne sont pas analysées sans LIBXML_NOENT
être défini. Si libxml_disable_entity_loader
est défini sur vrai, pas même LIBXML_NOENT
permettra à XXe.
Cette fonction est-elle vulnérable aux autres attaques basées sur XML? E.G., le milliard rit DOS attaque?
Non, milliards de rires seront pris avec les paramètres par défaut:
DOMDocument::loadXML(): Detected an entity reference loop in Entity
Ce qui ne sera pas attrapé, c'est Blowup quadratique . Notez que les entités doivent réellement être substituées, ce qui est soit fait via assez mal nomméLIBXML_NOENT
ou en accédant simplement au nœud (par exemple via textContent
).