如何将 XML DTD 实体分配给属性值

问题描述

我的 XML:

<?xml version="1.0"?>
<!DOCTYPE Input [  
    <!ELEMENT Input ANY >
    <!ENTITY xxe SYstem "file:///c:/test.txt" >]>
<ExecutionParameters>
  <Inputs>
    <Input Name="Input1" Value="VALUE_OF_XXE"></Input>
  </Inputs>
</ExecutionParameters>

我想将 xxe(test.txt 文件内容)传递给 VALUE_OF_XXE。

解决方法

您不能从 XML 属性值引用外部实体;这是不允许

<Input Name="Input1" Value="&xxe;"></Input>

替代方案

  1. 元素值引用外部实体:

    <Input Name="Input1" Value="">&xxe;</Input>
    
  2. 从属性值引用一个内部实体:

     <!ENTITY xie "Some text here" >]>
    

另见

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...