cookie 中缺少安全属性:WL_PERSISTENT_COOKIE 和 testcookie

Posted

技术标签:

【中文标题】cookie 中缺少安全属性:WL_PERSISTENT_COOKIE 和 testcookie【英文标题】:Missing Secure attributes in cookies: WL_PERSISTENT_COOKIE and testcookie 【发布时间】:2015-03-17 13:16:00 【问题描述】:

在安全扫描结果中,我收到以下错误:

WL_PERSISTENT_COOKIE 和 testcookie 的“加密会话 (SSL) Cookie 中缺少安全属性”。

我不知道如何为这些 cookie 设置安全属性,从 websphere 服务器它只允许我为 JSESSIONID cookie 设置安全属性,但不能为其他 cookie 设置安全属性。

以下是我从 appscan 结果得出的结论:

testcookie:这个 cookie 似乎是在 worklight.js 文件中生成的。根据appscan,应用程序向服务器(GET /ParkingApp/apps/services/preview/SmarterParking/common/0/default/worklight/worklight.js HTTP/1.1)发送请求,服务器响应此文件,该文件具有以下代码片段:

areCookiesEnabled : function() 
    var enabled = true;
    if (WL.EnvProfile.isEnabled(WL.EPField.WEB)) 
        var date = new Date();
        date.setTime(date.getTime() + (24 * 60 * 60 * 1000));
        document.cookie = "testcookie=oreo; expires=" + date.toGMTString() + "; path=/";
        var cookie = getCookie('testcookie');
        enabled = (cookie.value === 'oreo');
    
    return enabled;

所以我知道 cookie 是在此文件中设置的,因为后续请求和响应会交换 testcookie。

如何编辑此文件,因为它似乎是 worklight 中的预定义文件?编辑此文件以便我修改该行以包含安全属性是否是一个好习惯?

WL_PERSISTENT_COOKIE:有了这个 cookie,我有点卡住了,worklight 服务器在请求中查找这个 cookie,如果找不到,它会在 set-cookie 标头中将它发送回客户端。实际上,这就是我在安全扫描中看到的,但是服务器没有将此 cookie 设置为具有安全属性,并且我在 websphere 服务器设置中找不到该选项。如何将持久 cookie 设置为具有安全属性?

非常感谢您!

【问题讨论】:

WL 的版本是多少?您是否使用最新的 fixpack/iFix 更新了 WL? 嗨!我正在使用 WL 6.2。在此问题中使用最新版本将如何影响?因为我们在服务器上也运行了 WL 6.2,所以我们所有的应用程序都使用那个版本,所以我们还没有开始迁移。 您能否提供有关您执行的安全扫描的更多详细信息?我正在尝试找一些安全专家来帮助解决这个问题,更多细节可能会有所帮助 【参考方案1】:

简短的回答是,没有为这些 cookie 设置安全属性的选项。这 2 个 cookie 不被视为敏感信息。但是 AppScan 不知道这些是否是敏感 cookie,因此只会报告没有安全属性集。

在testcookie的情况下,它只是被客户端用来测试是否可以设置cookies。服务器根本不使用它。

WL_PERSISTENT_COOKIE 是一个随机生成的 ID,用于在没有建立其他用户身份时将请求与用户身份相关联。它在内部用于表示匿名 ID,用于跟踪/报告等目的。它不用于保护需要身份验证和授权的资源。因此,捕获 WL_PERSISTENT_COOKIE 令牌并从另一个设备或另一个会话中使用它不会授予任何额外或不同的权限。

【讨论】:

非常感谢您的回复!它确实回答了我的问题。这些 cookie 无法更改,但正如您所解释的那样,它们并不敏感。谢谢,因为现在我更好地理解了 cookie 的用途。【参考方案2】:

似乎 testcookie 和 WL_PERSISTENT_COOKIE 都被 Worklight 使用。 testcookie 只是一个假 cookie,用于检查是否启用了 cookie,并且 WL_PERSISTENT_COOKIE 被持久性 cookie 身份验证器使用,如此处文档中所述:

http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/devref/r_persistent_cookie_authenticato.html

我认为您无法更改那些由 Worklight 使用/设置的 cookie。

【讨论】:

非常感谢您的回复!它确实回答了我的问题。那些cookies不能改,但真的不敏感。

以上是关于cookie 中缺少安全属性:WL_PERSISTENT_COOKIE 和 testcookie的主要内容,如果未能解决你的问题,请参考以下文章

用 Java 解决“加密会话 (ssl) cookie 中缺少安全属性”

IBM AppScan - 加密会话 (SSL) Cookie 中缺少安全属性

IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性 处理办法

SSL Cookie 中缺少安全标志 (http-cookie-secure-flag)

将“HttpOnly”属性添加到所有会话 cookie

加密会话(SSL)Cookie 中缺少 Secure 属性 漏洞修复