在Servlet 3.0投诉应用程序服务器中,我可以通过在web.xml中添加以下内容来为会话cookie(JSESSIONID)设置HttpOnly和安全标志:
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
Run Code Online (Sandbox Code Playgroud)
但是,我正在处理的应用程序将部署在Websphere 7中,这是Servlet 2.5的投诉,如果我将上面的内容添加到web.xml,则无法启动
在Websphere 7配置中是否还有其他声明性方法或设置来打开会话cookie的HttpOnly和安全标志?
如果没有,那么以编程方式完成该方法的最佳方法是什么?
我找到了许多将HttpOnly添加到我的cookie中的例子,但它对我不起作用,我不知道为什么.我发现的所有例子都是一样的,我从我找到的一个帖子中复制了这个例子.我在IIS 7.0下使用.NET 3.5.希望有人可以告诉我我做错了什么?谢谢
<rewrite>
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; HttpOnly" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
UPDATE
我想出了如何打开跟踪,发现preCondition正在查看所有cookie,而不是每个cookie.
所以不要评估
Set-Cookie: myC5=we have S Cookie; path=/; secure
Set-Cookie: myC6=we have S Cookie; path=/; secure
Set-Cookie: myC7=we have S Cookie; path=/; secure; HttpOnly
Run Code Online (Sandbox Code Playgroud)
正在评估中
myC5=we have S Cookie; path=/; secure,myC6=we have S Cookie; path=/; secure,myC7=we have S …Run Code Online (Sandbox Code Playgroud) 我的项目使用Google跟踪代码管理器(GTM)管理我的Google分析(GA)代码.现在,出于某些原因,我需要在GA生成的cookie上添加"httponly"和"secure"标志,但我不知道该怎么做.
我想制作会话cookie HttpOnly.根据这篇文章,我将此添加到我的application.ini:
resources.session.cookie_httponly = true
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我在Firecookie中查看会话cookie时,它没有HttpOnly像我指定的那样标记.我错过了什么步骤?

正如问题所说,如果它是HttpOnly,你能否知道Javascript中是否存在cookie?我不需要访问其中的信息,只知道它有一个.
关于这种情况的更多信息是,最初有一个使用cookie作为身份验证令牌的Web服务器,并且它被设置为httponly,因为它没有被客户端使用,所以它被添加到安全性中.
但是现在需要进行更改,客户端需要知道它是否有cookie(因为站点可以在没有用户登录的情况下工作,但如果他们已登录(auth cookie将存在),则站点需要显示某些事物和隐藏他人.
Web服务器上还有其他安全预防措施,因此在客户端具有不正确的身份验证cookie的情况下没有任何损害,但该网站使其看起来像是已登录,因为它会删除cookie并拒绝用户.
如果我的应用程序将HttpOnly cookie放在客户端上,然后需要删除它们,你怎么能完全删除它们?
我将cookie设置为我的mvc应用程序的一部分:
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure // true
};
response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
现在,如果我调试,我看到它一切正常,没有问题,并添加,这也很好.但是由于某种原因,当它实际到达浏览器时,没有设置HttpOnly标志或安全标志.所以我有点困惑......
我已经尝试在System.Web下的cookie web.config条目中设置HttpOnly和Secure标志:
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Run Code Online (Sandbox Code Playgroud)
现在,这是浏览器收到响应时的响应方式:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 10000
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-requested-with, *
Access-Control-Allow-Origin: http://localhost:34567
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: myCookie=53BA8AF84835A81E014B9174329D8543FBB6029B71C463C6FC1305D9F966F28EAA058FE103325C0F10A3012480FB0EF3F6C0BAC4703A6A6B725F383ADA35A5C125A0438FC42CADCB0DAB77953C967E6660E51C4113C6545220A0C2F86230F446D159D523BBE9CA4D9419A67BC44D23B9C4D0974DF2ED66C47EA7308D8E42E1C2280EA6059A23303E3BCBDF28F6BD4A3DFA92FFAB33DDAC8EC05D99310D26FBD6310252156CD28B89386B0D483D6D2E295EF33487E64468655371CC446E0B5DDBF12B3AA8218AF1FA929A98638A1AC729BA60815B86EAD9624ED1787172B585BE4E457C3568AB6EAAF4865E8468D04336FA7340AAC1BA75162FB322D436DC9BF50466F2F0FB3464ECF41C6C1F7001639DFE2AB2AD9CBFB65A292FE5FA42783DF331AA4641432647BA9672FE6D4C15F830E4DF8B38605852BCB15E5B01B862D966E2FD1D620730312982DB8AB4CE5EE0D0E40E6C3F5234DE5EBFA594036D912F07C3798ED429A2552AD6C4B9EC10B90749850CBDEC97F0BF7E2E43CB3991608C5D533B6EA9F8D0A7AD949B42CD3BAA13DEE99C330121B3D868B412A3435FA01C7F223641CFE441A2E07F5DFB8B23F053CBA13F5E1262A07FBFD4EC4BADF9BD5898; expires=Wed, 27-Feb-2013 19:15:24 GMT; path=/
Date: Wed, 27 Feb 2013 18:45:24 GMT
Content-Length: …Run Code Online (Sandbox Code Playgroud) 有时*,在登录页面访问时,document.cookie我会得到一个空字符串,即使:
期望的行为
我的 React 单页应用程序 (SPA) 有一个登录页面,其中包含一个<form />用于将登录凭据发送到后端的元素。当收到后端的响应并且身份验证成功时,我检查身份验证 cookie 是否已正确设置。如果是这种情况,将触发重定向,显示登录用户的内容。
实际行为
不幸的是,大约15%的登录尝试document.cookie会返回一个空字符串,这会阻止重定向并将用户保留在登录页面上。按 并F5不能解决问题,但在成功登录请求后手动替换 url 路径时(例如,将“www.website.tld/ login ”更新为“www.website.tld/ start ”),用户将被转发到所需页面仅适用于登录用户。
我无法手动重现该错误。这似乎是随机发生的。但是当它发生时,我查看开发人员控制台,我可以看到来自后端的所有 cookie(设置正确)。
附加信息
response.set_cookie('key', 'value', secure=False httponly=False, samesite='strict')有关的:
登录页面 (JSX)
import React, { useState } from "react";
import { Redirect } from "react-router-dom";
import …Run Code Online (Sandbox Code Playgroud) 我需要将'HttpOnly'和'Secure'属性设置为'true'以防止CWE-614:HTTPS会话中的敏感Cookie而没有'安全'属性和CWE-402:将私有资源传输到新的Sphere漏洞显示在Veracode报告中.
在进行一些在线搜索之后,最好的办法是简单地在项目的web.xml文件中设置属性,如下所示:
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
Run Code Online (Sandbox Code Playgroud)
但是,我在开始标记上收到一条错误消息,说"元素类型的内容"session-config"必须匹配"(session-timeout)?".
我不确定这究竟是什么意思.我猜它与元素的顺序有关,但我真的不知道如何修复它.
有什么想法吗?
谢谢!
我有一个JWT令牌,我想存储在cookie中.cookie需要至少设置HttpOnly标志,但我还想将Secure标志设置为true.
从角度文档我知道我可以将我的令牌存储在这样的cookie中:
// using 'ngCookies'
createToken(jwt_token) {
$cookies.put('jwt', jwt_token);
},
retrieveToken() {
return $cookies.get('jwt');
}
Run Code Online (Sandbox Code Playgroud)
但目前尚不清楚如何指定HttpOnly和Secure标志.该文件说有一个选项字段put()和get(),但是随后它提到 $cookiesProvider.我不确定它是如何适应的,或应该在哪里声明,或者每次我做一个put()或者是否需要设置get()?
它会是这样的:
createToken(jwt_token) {
$cookiesProvider['domain'] = 'www.mydomain.com';
$cookiesProvider['secure'] = true;
$cookies.put('jwt', jwt_token);
},
retrieveToken() {
$cookiesProvider['domain'] = 'www.mydomain.com';
$cookiesProvider['secure'] = true;
return $cookies.get('jwt');
}
Run Code Online (Sandbox Code Playgroud)
还是完全错了?我也没有看到任何HttpOnly标志,但我确实看到domain了我设置的标志www.mydomain.com.这相当于HttpOnly = true吗?