在安全扫描结果中,我收到以下错误:
"加密会话(SSL)Cookie中缺少安全属性"对于WL_PERSISTENT_COOKIE和testcookie。
我不知道如何设置这些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;
}
所以我理解,随着后续请求和响应交换testcookie,cookie被设置在此文件中。
如何编辑此文件,因为它似乎是工作光中的预定义文件?编辑此文件是否是一个好习惯,以便我修改该行以包含安全属性?
WL_PERSISTENT_COOKIE
:使用此Cookie我有点卡住了,工作灯服务器会在请求中查找此Cookie,如果找不到它,则会将其发送回set-cookie中的客户端头。实际上,这是我在安全扫描中看到的,但是服务器没有将此cookie设置为具有安全属性,并且我在websphere服务器设置中找不到该选项。我怎样才能将持久性cookie设置为具有安全属性?非常感谢你!
答案 0 :(得分:3)
简短的回答是,没有选项可以为这些cookie中的任何一个设置安全属性。这2个cookie不被视为敏感。但AppScan不知道这些是否是敏感cookie,因此只报告没有安全属性集。
对于testcookie,它仅供客户用于测试是否可以设置cookie。它根本不被服务器使用。
WL_PERSISTENT_COOKIE是一个随机生成的ID,用于在没有建立其他用户身份时将请求与用户身份相关联。它在内部用于表示匿名ID,用于跟踪/报告等目的。它不用于保护需要身份验证和授权的资源。因此,捕获WL_PERSISTENT_COOKIE令牌并从其他设备或其他会话中使用它将不会授予任何其他或不同的权限。
答案 1 :(得分:1)
似乎workcookie和WL_PERSISTENT_COOKIE都被Worklight使用。 testcookie只是一个假cookie,用于检查cookie是否已启用,并且持久性cookie身份验证器使用WL_PERSISTENT_COOKIE,如此处的文档中所述:
我认为您无法更改Worklight使用/设置的Cookie。