Questions tagged «session»


1
为什么流行的网站将非常复杂的与会话相关的数据存储在cookie中,这意味着什么?
作为Web开发人员,我们所有人都知道会话有助于克服与​​HTTP无状态本质相关的问题。我们创建一个唯一的会话ID,并将其发送给浏览器-当浏览器向我们发送相同的ID时,我们可以轻松识别用户。 所有这些听起来很简单,而且用任何一种语言实现都没有那么复杂。 现在 查看我拍摄的以下屏幕截图。这些显示了流行网站存储的cookie类型。看起来他们正在存储多个会话ID,或者正在尝试通过设置太多cookie来隐藏实际ID,或者,这是他们为防止会话劫持和其他相关问题而采取的一种非常专门的安全措施。管他呢。 Gmail(登录前) Gmail(登录后) 脸书 StackExchange (不用担心,您不能偷走我的会话-这是陈旧且不完整的:)) 因此,我的问题是-这种复杂性有什么目的?请说明这些不同的Cookie的含义(通常),以及它们的设置目的。最后,提示我如何在自己的应用中做到这一点(以及是否应该这样做)。 另一个问题:在很多情况下,Cookie中的值看起来像是URL编码的-为什么呢?
19 session 

6
HTTP会话或数据库方法
我对应该采取的方法感到有些困惑,正在研究购物车的设计,我需要将购物车存储在会话中或数据库中,但不确定哪种方法是最佳方法。 用户未登录并将产品添加到购物车(匿名用户) 用户已登录并将产品添加到购物车。 第一种情况对我来说更令人困惑,因为在许多情况下,用户只是访问网上商店并在没有登录的情况下添加产品,很可能他可能不会进行结帐流程。 但是我们仍然需要为此用户创建一个购物车,为了创建和保存购物车,我有两个选择。 当用户添加产品时,请在数据库中创建一个购物车并将该购物车与该用户相关联,当他登录时将其移动到登录用户。 当用户登录数据库中的创建购物车并将该登录购物车的用户与用户相关联时,创建购物车,向其中添加产品并将其保存到会话中。 我知道无论是数据库驱动的Cart系统还是基于Session的方面都可能有积极的方面也有消极的方面,但是我不确定哪一个是考虑以下几点的最佳方法 可扩展性 灵活性 可扩展性 应用程序应注意速度 寻找有关此方面的信息以决定路径。

2
Cookie vs.会话vs jwt
我正在阅读Web应用程序中的身份验证/授权。有人可以确认/纠正我目前的知识吗? Cookies:在其早期版本中,具有唯一客户端的文本文件会标识与该客户端有关的所有其他信息(例如角色) 会话:只有唯一的客户端ID在文件中发送(也称为Cookie),其他所有内容都存储在服务器上 JWT:所有内容都存储在令牌中(也可以存储在文本文件中,也称为Cookie) 感谢您的任何反馈!

4
为什么WAR无法共享会话信息?
我已经看到一些开发人员在寻找解决此问题的方法:从不同的WAR(即使在同一EAR中)访问会话信息 -以下是一些示例:在tomcat中不同应用程序之间共享会话状态的任何方法?,访问另一个Web应用程序的会话,不同的WAR文件,共享资源,Tomcat:如何在两个应用程序之间共享数据?,crossContext属性在Tomcat中做什么?是否启用会话共享?等等... 从我搜索过的所有内容来看,有一些特定的解决方案取决于容器,但这在某种程度上“ 与规范相反 ”。我也浏览了Java EE规范,但没有找到答案的运气。 一些开发人员谈论Web应用程序之间的耦合,但是我倾向于不同意。如果不耦合,将WAR保留在同一个EAR中的原因是什么?例如,可以在本地访问EJB(即使在同一EAR中的另一个EJB JAR中也可以访问)。 更具体地说,我的一个WAR处理身份验证和授权,并且我想与其他WAR(在同一EAR中)共享此信息。在将WAR打包为JAR并将它们放入单个WAR项目(WEB-INF / lib)之前,我设法解决了类似的问题。但是我不喜欢这种解决方案(它需要在servlet命名上付出巨大的努力等等)。 而且没有解决方案可以回答第一个(也是最重要的)问题:为什么WAR无法共享会话信息?

4
SaaS应用程序中的用户会话超时处理-讨论几种方法
我知道这很有可能被标记为重复,但是找不到我要找的东西 这是一个常见问题,我敢肯定它有一些定义明确的最佳实践解决方案 背景 单个页面的SaaS应用程序具有很多拖放功能,用户可以在不进行大量服务器通信的情况下与之交互 服务器会话仅使用非持久会话cookie来保存用户对象 X小时后,会话在服务器上到期 有些东西仅在登录时加载 问题 用户在应用程序上工作,完成后,用户不会注销,只是保持浏览器保持打开状态 用户超过X个小时后返回(会话在服务器上无效) 用户无需服务器连接即可与应用进行交互(拖放内容,文本编辑...) 仅在下一次服务器交互时(假设没有自动保存),用户将被抛出到登录页面,并丢失一些工作 可能的解决方案 这是我想到的一些解决方案,想听听是否还有其他解决方案,以及其中是否有任何根本性的错误。 1.永远不要注销用户 怎么样?保持长时间的会话,保持持久的cookie或javaScript“保持活动” ping 优点:用户无需担心任何事情,可以为他们解决问题 缺点:不符合PCI标准,不安全,并且需要进行开发更改,例如仅在用户登录时加载到会话的内容需要转移到pub子模型(侦听事件更改)或具有缓存超时。 2.本地存储 怎么样?如果注销,使用新的本地存储临时存储状态,重定向到登录页面,登录后永久保存 优点:也是“离线工作”支持的基础,而不仅仅是处理会话超时 缺点:难以实施,需要对数据树进行状态合并,并非所有浏览器都支持 3.自动保存 更改模型的每个用户操作都应立即保留(或通过某种客户端队列),例如,如果他们选中了复选框,更改了文本字段或拖放了某些东西,则一旦完成,就保留更改。 怎么样?使用MV **框架(Backbone.js / Knockout.js / Ember.js / Angular.js等)绑定模型,并坚持更改。 优点:似乎是一个干净的解决方案,只要用户处于活动状态,会话就处于活动状态,如果不坚持下去,则不会进行任何客户端工作。 缺点:会话超时丢失后,用户上一次执行的操作。 4.会话过期后注销用户 这可以有几种方法 询问服务器“会话已过期”-这有点像22 /薛定inger的猫,因为服务器的唯一问题是延长了会话(重新启动超时), 怎么样?要么有一个服务器支持这样的问题(我什么都不知道,但是我来自Java领域),或者可以只保留一张会话ID表,手动上一次访问时间,然后通过传递会话来询问服务器。 ID作为参数而非cookie的参数,我不确定这是否可行,但是听起来很危险,不安全且设计不佳。 优点:如果服务器中有这种本机支持,这听起来像是一个干净,合理的问题(询问用户X是否仍然有会话,如果有则不进行更新) 缺点:如果服务器不支持它(同样,我不知道是否有服务器或框架具有此功能),则解决方法可能会带来巨大的安全风险。 我听说的一种解决方法是在服务器端进行一次简短会话,并在客户端ping保持活动状态ping,最多可以ping 怎么样?服务器上的简短会话,客户端ping每个sessionTimeOut / 2,最大重试次数为Y。 优点:可以解决问题,快速又脏 缺点:感觉像黑客一样,自己处理会话续订而不是让服务器执行 客户端计时器 …

7
PHP中最可靠的会话存储是什么:内存缓存,数据库或文件?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 什么是处理PHP会话的最佳,最安全的方法。是将会话存储在以下位置的最佳方法: 数据库(更可靠,但瓶颈大,速度慢,不利于数据库使用率高的网站)? Memcache(超快,但分布更多的安全问题,服务器重新启动时丢失数据的可能性以及缓存已满时丢失数据的机会)? 文件(默认选项,我猜很慢,因为它从文件I / O读取和写入文件,降低安全性,等等)。 哪种方法最好?每种方法的问题和优点是什么?
10 php  session 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.