基于IBM App Scan DSAT测试,primefaces.download的加密会话(SSL)Cookie问题中缺少安全属性。
Primefaces版本是7.0
示例示例:https://www.primefaces.org/showcase/ui/data/dataexporter/basic.xhtml
primefaces.download-在我们下载文件时会设置此cookie
我们已经在web.xml中具有session-config,但是当我在chrome中签入时,primefaces.download cookie并未设置为仅http并且安全。
在JBOSS 7.2上运行时还需要做其他事情吗?
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
..........
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
web.xml
配置仅影响JSESSIONID
Cookie。它对所有其他cookie都没有明确的影响。这是要创建的Cookie的所有者的责任。在这种情况下,这就是PrimeFaces,而不是servlet容器,更不用说JSF了。
[通过HTTPS打开页面,secure
cookie上缺少primefaces.download
属性是PrimeFaces中的错误。 Just report to them。告诉他们去cookie.setSecure(request.isSecure())
。
然而,它绝对不应该设置HttpOnly
标志,否则JavaScript将无法看到它,然后它将永远不会在客户端知道下载是否完成,这将破坏PrimeFaces.monitorDownload()
功能。而且,您的IBM工具也没有抱怨。它只是抱怨缺少PrimeFaces.monitorDownload()
属性。
已提交解决9.0-SNAPSHOT中问题的拉取请求。
secure