PHP loadXML関数(および他のXML関数)を使用するコード)があります。
LoadXML関数はXXE攻撃に対して脆弱ですか?つまり、XMLに外部エンティティが含まれている場合、それらは解釈されますか?
この機能は、他のXMLベースの攻撃に対して脆弱ですか?たとえば、Billion Laughs DoS攻撃?
XXEや他のXML関連の攻撃に対して脆弱な関数のリストを参照していただけますか?
設定を変更することで、PHP=でXXE攻撃を簡単にブロックできることを知っています。しかし、私が提起した質問に対する回答を得ることができてうれしいです。
LoadXML関数はXXE攻撃に対して脆弱ですか?つまり、XMLに外部エンティティが含まれている場合、それらは解釈されますか?
デフォルトではありません。
LIBXML_NOENT
が設定されていないと、外部エンティティは解析されません。 libxml_disable_entity_loader
がtrueに設定されている場合、LIBXML_NOENT
でもXXEは許可されません。
この機能は、他のXMLベースの攻撃に対して脆弱ですか?たとえば、Billion Laughs DoS攻撃?
いいえ、デフォルト設定では10億の笑い声が聞こえます。
DOMDocument::loadXML(): Detected an entity reference loop in Entity
キャッチされないのは 2次ブローアップ です。エンティティは実際に置換する必要があることに注意してください。これは、 どちらかといえば不十分な名前LIBXML_NOENT
を介して、または単にノードにアクセスすることによって行われます(例textContent
経由)。