cookie 中缺少安全属性:WL_PERSISTENT_COOKIE 和 testcookie
Missing Secure attributes in cookies: WL_PERSISTENT_COOKIE and testcookie
在安全扫描结果中,我收到以下错误:
"Missing Secure Attribute in Encrypted Session (SSL) Cookie" for WL_PERSISTENT_COOKIE and testcookie.
我不知道如何为这些 cookie 设置安全属性,从 websphere 服务器它只允许我为 JSESSIONID cookie 设置安全属性,但不能为其他 cookie 设置安全属性。
以下是我根据我的应用程序扫描结果得出的结论:
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,如果找不到它,它会在一个集合中将它发送回客户端-饼干头。实际上,这是我在安全扫描中看到的,但是服务器没有将此 cookie 设置为具有安全属性,而且我在 websphere 服务器设置中找不到该选项。如何设置持久性 cookie 以具有安全属性?
非常感谢您!
似乎testcookie 和WL_PERSISTENT_COOKIE 都被Worklight 使用了。
testcookie 只是一个假 cookie,用于检查 cookie 是否已启用,WL_PERSISTENT_COOKIE 由持久性 cookie 身份验证器使用,如此处文档中所述:
我认为您不能更改这些 cookie,因为它们是 Worklight used/set。
简短的回答是没有选项可以为这些 cookie 中的任何一个设置安全属性。这 2 个 cookie 不被认为是敏感的。但是 AppScan 不知道这些是否是敏感 cookie,因此只报告没有设置安全属性。
对于testcookie,它只是客户端用来测试是否可以设置cookie。服务器根本不使用它。
WL_PERSISTENT_COOKIE是一个随机生成的ID,用于在没有建立其他用户身份时将请求与用户身份相关联。它在内部用于表示匿名 ID,用于 tracking/reporting 之类的目的。它不用于保护需要身份验证和授权的资源。因此捕获 WL_PERSISTENT_COOKIE 令牌并从另一个设备或另一个会话使用它不会授予任何额外或不同的权限。
在安全扫描结果中,我收到以下错误:
"Missing Secure Attribute in Encrypted Session (SSL) Cookie" for WL_PERSISTENT_COOKIE and testcookie.
我不知道如何为这些 cookie 设置安全属性,从 websphere 服务器它只允许我为 JSESSIONID cookie 设置安全属性,但不能为其他 cookie 设置安全属性。
以下是我根据我的应用程序扫描结果得出的结论:
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,如果找不到它,它会在一个集合中将它发送回客户端-饼干头。实际上,这是我在安全扫描中看到的,但是服务器没有将此 cookie 设置为具有安全属性,而且我在 websphere 服务器设置中找不到该选项。如何设置持久性 cookie 以具有安全属性?
非常感谢您!
似乎testcookie 和WL_PERSISTENT_COOKIE 都被Worklight 使用了。 testcookie 只是一个假 cookie,用于检查 cookie 是否已启用,WL_PERSISTENT_COOKIE 由持久性 cookie 身份验证器使用,如此处文档中所述:
我认为您不能更改这些 cookie,因为它们是 Worklight used/set。
简短的回答是没有选项可以为这些 cookie 中的任何一个设置安全属性。这 2 个 cookie 不被认为是敏感的。但是 AppScan 不知道这些是否是敏感 cookie,因此只报告没有设置安全属性。
对于testcookie,它只是客户端用来测试是否可以设置cookie。服务器根本不使用它。
WL_PERSISTENT_COOKIE是一个随机生成的ID,用于在没有建立其他用户身份时将请求与用户身份相关联。它在内部用于表示匿名 ID,用于 tracking/reporting 之类的目的。它不用于保护需要身份验证和授权的资源。因此捕获 WL_PERSISTENT_COOKIE 令牌并从另一个设备或另一个会话使用它不会授予任何额外或不同的权限。