2016-11-07 88 views
3

在我的项目,我使用更新捆绑的taglib标准版里面JSTL 1.2

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.2</version> 
    <type>jar</type> 
    </dependency> 

但经过我们的安全团队评估了罐子就发现,捆绑org.apache.taglibs:标准瓶是1.2版本。 1,存在安全漏洞(https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-0254)。 Apache已经在1.2.3版中修复了它(https://tomcat.apache.org/taglibs/standard/)。

另外,META-INF/c.tld表明它实际上是JSTL版本1.1而不是1.2(见JSTL version 1.2 declared but 1.1 delivered from Maven Repository)。也许这个错误是连接到错误的taglibs标准版本?

不过,我应该怎么做才能更新jstl中捆绑的taglibs标准版本?

+0

至于vulrenability,这是真正的web应用程序使用JSTL的XML标签? (例如)。从十多年前的JSP 2.0开始,它们的使用受到了极大的鼓励(与JSTL SQL标签一起),您应该使用“普通”的JAXP或JAXB。只要你的web应用程序不在任何地方使用不鼓励JSTL (或)标签,它应该是安全的。 – BalusC

+0

你应该删除易受攻击的罐子,清理你的本地仓库,修复'pom.xml'中的错误,清理临时文件夹或重新创建项目,重建,重新打包。如果你完成了所有这些步骤,那么它应该更新库,否则你应该问一个能够帮助的人。 –

+0

@BalusC tbh,不知道它是否被使用。 “我的项目”是指企业级应用程序,我的唯一任务是修复安全漏洞。 RomanC我不认为这有帮助,因为这是来自中央maven回购的最新官方jar。它只是没有得到与它捆绑的最新罐子更新。 – sceiler

回答

0

而是需要的组件三个最新版本的全jstl-1.2.jar下载:

<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec --> 
<dependency> 
    <groupId>org.apache.taglibs</groupId> 
    <artifactId>taglibs-standard-spec</artifactId> 
    <version>1.2.5</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl --> 
<dependency> 
    <groupId>org.apache.taglibs</groupId> 
    <artifactId>taglibs-standard-impl</artifactId> 
    <version>1.2.5</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-jstlel --> 
<dependency> 
    <groupId>org.apache.taglibs</groupId> 
    <artifactId>taglibs-standard-jstlel</artifactId> 
    <version>1.2.5</version> 
</dependency>