我们需要确保CF7站点上的所有cookie都设置为HttpOnly.
我们使用jsessionid来控制我们的会话,而JRun并没有将它创建为HttpOnly.
虽然可以修改现有的cookie来添加此设置,但我们需要从一开始就将其设置为HttpOnly.
有什么建议?
相关问题:为HTTPS cookie设置安全标志.
寻找某人确认或反驳我的理论,即在同一域上部署指向两个不同有状态页面的两个iframe可能导致JSESSIONID被覆盖.这就是我的意思:
建立
可能出现以下竞争条件吗?
以上可以发生吗?我是这么认为的,但我希望得到确认.
如果以上显然是可行的,那么我们想要支持每页多个iframe的解决方案是什么?我们并不需要iframe共享相同的HttpSession,尽管这样会很好.如果解决方案仍然会为每个iframe规定一个单独的HttpSession,那么当然 - iframe 1最终不会引用iframe 2的httpSession状态而不是iframe.
我能想到的是:
非常感谢,-nikita
为了提供一些上下文,我正在开发一个API来跟踪网站上的用户操作(也是用户).到目前为止,我们使用jsessionId来识别每个用户及其操作.
该API现在可以在Tomcat和JBoss上运行.
真正重要的问题是,既然我们每天分析一次所有数据,那么这个jsessionId的唯一性在一天中是否得到保证?或者,不同时,其他用户可以获得其他用户以前使用过的jsessionId吗?
提前致谢.
我有两个应用程序 - 一个Java EE Web应用程序和一个Java SE applet.我想通过JSESSIONID(由Web应用程序创建)在applet中验证用户.
所以有一个问题 - 如何将这个JSESSIONID与特定用户相关联?
如何检查(在Web服务器应用程序端)哪个用户由这样的JSESSIONID表示?在applet中,我将从cookie中读取它,然后我想编写一个简单的Servlet,它将接受此JSESSIONID作为POST消息.此后,当JSESSIONID不好时,我想在响应中写任何内容,如果JSESSIONID是好的(即代表某人),则用户信息.
有谁知道如何做到这一点?
我搜索了jquery论坛,stackoverflow,谷歌,bing,甚至雅虎没有成功.每隔10秒我就会尝试通过这个JQuery片段从logservlet servlet加载文本数据:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
var autorefresh = setInterval(function () {
$.ajax({
url : "logservlet?devkey=chat",
success : function(data) {
$("#log_ta").append(data);
}
});
}, 10000);
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,在服务器端,我没有看到有效的会话,我试图跟踪会话属性.问题似乎与在JQuery的http请求的标头中缺少"Cookie JSESSIONID = xxxxxxxxxxxxxxxxxxxxxxxxxxx"有关.我从服务器获得响应头,JSESSIONID总是随每个请求而变化:
Server Apache-Coyote/1.1
Set-Cookie JSESSIONID=9EEAFA2A933E7742D8FEDADD5345B76D; Path=/CumulusServer
Content-Length 0
Date Fri, 23 Mar 2012 13:02:08 GMT
Run Code Online (Sandbox Code Playgroud)
但是JQuery后来没有使用它,这里是请求头:
Host 192.168.1.11:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://192.168.1.11:8080//CumulusServer/
Run Code Online (Sandbox Code Playgroud)
这有什么问题?"$ .ajax"调用不会识别会话吗?或者,我是否会错过一些管道代码来在每个ajax请求中手动硬编码JSESSIONID?是这样,这应该怎么样?顺便说一句,当我从网络浏览器调用相同的URL时,JSESSIONID标头被发送到服务器!
感谢:D.
我在Excel 2010中使用MSXML2.XMLHTTP60为Tomcat 8.5.5上托管的Java REST Web服务编写VBA Web服务客户端.
在VBA中,我希望能够JSESSIONID=E4E7666024C56427645D65BEB49ADC11从响应中获取字符串,并能够在后续请求中设置它.(想要这样做的原因是,如果Excel崩溃,似乎这个cookie丢失了,用户必须再次进行身份验证.我希望能够为用户设置最后存储的会话ID,所以如果会话是在服务器上仍然存在,它们不必在Excel客户端中重新进行身份验证.)
我看到了一些在线资源,根据这些资源,下面将拉出JSESSIONID cookie,但最后一行总是打印出来:
Dim httpObj As New MSXML2.XMLHTTP60
With httpObj
.Open "POST", URL, False
.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
.SetRequestHeader "Connection", "keep-alive"
.Send
End With
Debug.Print "Response header Cookie: " & httpObj.GetResponseHeader("Cookie") 'This should pull the JSESSIONID cookie but is empty
Run Code Online (Sandbox Code Playgroud)
当我打印时,httpObj.GetAllResponseHeaders我看不到任何包含JSESSIONID的标题.
在相同的资源中,以下应该设置所需的cookie,但它不会(我打印出服务器上传入请求的标题,并看到我的尝试没有覆盖JSESSIONID值).
httpObj.SetRequestHeader "Cookie", "JSESSIONID=blahblah"
Run Code Online (Sandbox Code Playgroud)
我可能会错过JSESSIONED如何传输的机制,以及VBA如何以及何时提取它并设置它.
如何才能做到这一点?我很欣赏任何正确方向的指针.
我试图弄清楚如何基于 JSESSIONID cookie 为具有长期交互式用户会话的 web 应用程序提供零停机滚动更新,这些会话应该是粘性的。
出于这个(和其他)原因,我正在研究容器技术,比如 Docker Swarm 或 Kubernetes。
我很难找到关于如何的好答案:
更多信息:
所以,我对所需流程的想法是这样的:
正如我提到的,我正在研究 Kubernetes 和 Docker Swarm,但对其他建议持开放态度,但最终解决方案应该能够在云平台上运行(目前使用 Azure,但未来可能会使用谷歌或亚马逊云)
任何指示/提示/建议或想法表示赞赏
保罗
编辑:回答@Tarun 问题和一般说明:是的,我不想停机。我设想的方式是托管旧版本的容器将继续运行以服务所有现有会话。一旦旧服务器上的所有会话结束,旧服务器就会被移除。
新容器只会为在新版本开始推出后启动应用程序的用户提供新会话。
因此,举个例子: - 我在上午 9 点启动旧版本应用程序的新会话 A - 上午 10 点推出新版本。- 我继续使用会话 A,并保留托管在运行旧版本的容器上。- 中午我去吃午饭并注销 - 因为我是连接到运行旧版本的容器的最后一个会话,容器现在将被销毁 - 下午 1 点我回来,重新登录并获得新版本的应用程序
说得通?
我已经使用 Google Datastore 在 servlet 中创建了一个登录页面,它工作正常。但有时它会在 URL 中显示 JSESSIONID。
如何阻止 JSESSIONID 通过 URL 发送?为什么它通过 URL 而不是请求消息传递?
我们的 grails 应用程序中出现java.lang.IllegalStateException: getAttribute: Session already invalidated少量错误。
我们尝试检查过滤器中的会话是否无效,如果是则重定向到同一页面,但这不起作用。看起来会话在请求过程中失效了。
处理此错误的正确方法是什么?我们应该在顶层放置一个错误处理程序并返回一些 http 状态吗?
我有一个使用 Spring Security 4.0.1.RELEASE 的基于 J2EE REST 的应用程序。不用说,除了 StackOverflow 上有针对性的问题之外,关于 和 的 Spring 文档很少sessionCreationPolicy。sessionFixation
我正在为 Spring Security 使用基于 Java 的配置,如下所示:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(secureEnabled=true, prePostEnabled=true, jsr250Enabled=true, order=1)
public class DefaultSecurityBeansConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
.sessionFixation().migrateSession()
.and()...; // additional config omitted for brevity
}
}
Run Code Online (Sandbox Code Playgroud)
我真的只是想知道 Spring 会发生什么行为,因为它与 相关,考虑到和JSESSIONID的所有可能组合。sessionCreationPolicysessionFixation
SessionCreationPolicy枚举中可能的值为ALWAYS、NEVER、IF_REQUIRED和STATELESS。
会话固定的可能值为newSession、migrateSession、changeSessionId和 …
jsessionid ×10
cookies ×4
java ×4
java-ee ×2
tomcat ×2
applet ×1
coldfusion ×1
docker-swarm ×1
grails ×1
httponly ×1
jquery ×1
jrun ×1
jsp ×1
kubernetes ×1
servlets ×1
session ×1
spring ×1
stateless ×1
updating ×1
vba ×1
web-services ×1