- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
该产品处理 XML 文档,该文档可以包含带有解析为外部文档的 URL 的 XML 实体的预期控制范围,导致产品将不正确的文档嵌入到其输出中。
默认情况下,XML 实体解析器将尝试解析和检索外部引用。如果攻击者控制的 XML 可以提交给这些函数之一,然后攻击者就可以访问有关内部网络、本地网络的信息文件系统或其他敏感数据。这称为 XML 外部实体 (XXE) 攻击。
没什么
package com.integratingstuff.jaxb;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import com.integratingstuff.pojo.Item;
public class DoUnmarshall {
public static void main(String[] args) {
try
{
JAXBContext jaxbContext= JAXBContext.newInstance(Item.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
String xml = "<?xml version="1.0" encoding="UTF-8"?><item
price="" description="Test description" catalog-number="10"/>";
InputStream inputStream = new
ByteArrayInputStream(xml.getBytes());
Item item = (Item) unmarshaller.unmarshal(inputStream);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
最佳答案
这是获取解决方案的一个很好的引用:https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java
例如,在您的情况下,您只需将这两个属性添加到 XMLInputFactory
和流读取器:
final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory();
// These 2 properties are the key
xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
xmlInputFactory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
// Your stream reader for the xml string
final XMLStreamReader xmlStreamReader = xmlInputFactory
.createXMLStreamReader(new StringReader(yourXMLStringGoesHere));
final NsIgnoringXmlReader nsIgnoringXmlReader = new NsIgnoringXmlReader(xmlStreamReader);
// Done with unmarshalling the XML safely
final Item item = (Item) unmarshaller.unmarshal(nsIgnoringXmlReader);
这也应该通过 Veracode 扫描,没有任何 XXE 问题。
希望有帮助
关于java - XML 外部实体引用的不当限制 (CWE ID 611)(6 个缺陷),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58010289/
我正在研究 Juliet Test Suite为了我的研究,我正在对这些代码应用一些静态分析器来生成警告。运行cppcheck 后,我发现它无法检测到manifest.xml 文件(元数据)中提到的许
我正在努力修复我的应用程序中的 Veracode 问题。 Veracode 在下面的代码中突出显示了缺陷“文件名或路径的外部控制 (CWE ID 73)”。 Thread.currentThread(
CWE(Common Weakness Enumeration)和 CVE(Common Vulnerabilities and Exposures)有什么区别?它们的用法有什么区别? 最佳答案 软件
我们收到以下代码的 IBM APPSCAN 异常。 { br = new BufferedReader(new InputStreamReader((conn.getInputStream()
作为 veracode 扫描的一部分,我收到了 CWE 829 - 抛出来自不受信任的控制领域的功能错误。 下面我粘贴了我的 Java 代码,在第 3 行中我遇到了这个漏洞。 我没有找到太多关于这个问
在 veracode 扫描期间,我的结果中出现了 CWE 73 问题。有人可以建议我如何针对以下编码场景修复此解决方案吗? 提供的现有解决方案不起作用,我还想知道是否可以使用任何 ESAPI 属性来解
我的产品中报告了 CWE 117 问题。 CWE 117 问题是软件无法正确清理或错误地清理写入日志的输出,我得到的一种可能的解决方案是在记录时添加以下内容。 String clean = args[
我的产品中报告了 CWE 117 问题。 CWE 117 问题是软件没有正确清理或错误地清理写入日志的输出,我得到的一种可能的解决方案是在日志记录时添加以下内容。 String clean = arg
我有这段代码,我认为这是重定向到另一个 servlet 的相当标准的方法 RequestDispatcher dispatch = request.getRequestDispatcher("
我在 session.setAttribute(var1,var2) 等线路上遇到了 veracode 缺陷 cwe id 501。我已经尝试过不同的方法来解决它,但无法解决这个问题。我尝试过的方法如
我有这个代码: try { BufferedWriter bw = null; FileWriter fw = null; try {
我正在修复 veracode 静态扫描发现的缺陷,并且我发现了几个 session 修复缺陷,如下所示: request.getSession().get/set Attribute( ); OWAS
我一直在使用 rand() 函数来生成随机数。当我通过 CWE 检查工具检查我的代码时,它认为 rand() 是一个潜在的危险函数,并建议使用加密库。任何人都可以详细说明吗?生成随机数的最佳和安全替代
有一个 Spring 全局 @ExceptionHandler(Exception.class) 方法可以像这样记录异常: @ExceptionHandler(Exception.class) voi
我有像上面这样的代码,并且我已经使用模板文字来替换值,但 veracode 扫描仍然显示它存在 xss 漏洞。在这种情况下我该如何解决? 最佳答案 使用OWASP Java Encoder使用"
代码如下 public void sendEmail(String toEmailAddr, String subject, String body) throws AppException {
我安装的是MySQL Workbench 6.3,可以在ISS上安装TestLink(php),工具安装成功了,但是访问网站的时候首页有如下提示,我已经研究了好几个地方,找到了解决方案。 Window
根据 Veracode,与技术特定输入验证问题相关的 CWE-ID 100“缺陷”使我们的应用程序出现了数百次。 根据他们的文档,补救措施是在使用模型之前检查模型的 ModelState.IsVali
我在我的 ASP.NET 核心 Web API 中有一个 POST 方法,它将模型作为参数(将 POST 内容直接绑定(bind)到模型)。该模型包含所有参数作为可选参数。在使用 Veracode 扫
我正在使用 Logback,并且在记录用户参数时需要避免 CRLF(回车换行)。 我尝试在静态 map PatternLayout.defaultConverterMap 上添加扩展 ClassicC
我是一名优秀的程序员,十分优秀!