当前位置: 首页 > 知识库问答 >
问题:

防止XXE强化问题的TrasnformerFactory

裴弘
2023-03-14

我需要修复XXE问题。我在代码中使用transformerfactory。在下面找到修复程序,但我在代码中看不到ACCESS\u EXTERNAL\u DTD属性。我得到的原因是以下代码将适用于Java7,但我使用的是Java 6。能否有人建议其他修复方法来保护Java TransformerFactory免受XXE攻击,请执行以下操作:

TransformerFactory tf = TransformerFactory.newInstance();
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");

共有1个答案

公羊嘉
2023-03-14

我也遇到过同样的情况,不更新Java版本很难解决。

以下是能够以相同的结果通过fortify扫描的代码更改。

使用以下代码代替TransformerFactory:

   DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
   LSSerializer lsSerializer = domImplementation.createLSSerializer();
   LSOutput lsOutput = domImplementation.createLSOutput( );


   lsOutput.setEncoding("UTF-8");
   StringWriter stringWriter=new StringWriter();
   lsOutput.setCharacterStream(stringWriter);
   lsSerializer.write(doc,lsOutput);
   return stringWriter.toString();

请查看是否有比这段代码更优雅的方式将XML文档转换为Java中的字符串,以供参考?。

而且

 类似资料:
  • 我们对代码进行了安全审计,它提到我们的代码容易受到XML外部实体(XXE)攻击。 XML外部实体攻击利用XML功能在处理时动态构建文档。XML实体允许动态包含来自给定资源的数据。外部实体允许XML文档包含来自外部URI的数据。除非配置为其他方式,否则外部实体会强制XML解析器访问URI指定的资源,例如本地计算机或远程系统上的文件。此行为会使应用程序遭受XML外部实体(XXE)攻击,这些攻击可用于执

  • 问题内容: 最近,我们对代码进行了安全审核,问题之一是我们的应用程序受到 Xml eXternal Entity (XXE)攻击。 基本上,该应用程序是一个计算器,可通过Web服务以XML形式接收输入。 这是对我们的应用程序进行此类XXE攻击的示例: 如您所见,我们可以引用指向外部文件()的实体。 关于XML输入本身(该部分)未与JAXB(v2.1)一起编组。Web服务部分基于jaxws- rt(

  • 想知道如何使用Xstream API修复Xml外部实体(XXE)漏洞。 就像我们能做的一样 使用DocumentBuilderFactory。更多详细信息-https://www.owasp.org/index.php/XML_External_Entity_(XXE)\u预防\u备忘单 我的代码是这样的-

  • 我的项目中有下面的代码 加强在上述代码中显示xml注入。如何解决这种xml注入?

  • 本文向大家介绍问题:如何防止过拟合?相关面试题,主要包含被问及问题:如何防止过拟合?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1.早停法;2.l1和l2正则化;3.神经网络的dropout;4.决策树剪枝;5.SVM的松弛变量;6.集成学习 解析:能够达到模型权重减小,模型简单的效果

  • 我在fortify报告中收到了第4行的XML外部实体注入安全警告。不知道如何修复它。我对SOAP、JAXB和Marshaller很陌生。 第4行(XML外部实体注入)高问题详细信息王国:输入验证和表示扫描引擎:SCA(语义) 接收器详细信息接收器:解组() 提前感谢!