标签: session-cookies

iphone bookmarklet cookie持久性

我有一个iphone(基于jqtouch)的网络应用程序,它使用cookie进行身份验证.使用流程如下:

  • 用户进入移动登录页面并被指示将页面保存为其主页上的书签.

  • 他们启动书签,转到登录页面登录并获取cookie.

  • cookie工作,他们可以在整个网站上导航.

  • 但是,此会话cookie不是持久的.如果他们离开safari然后使用保存的bookmarklet重新启动,则在上一个会话期间设置的cookie将消失.

  • 只是使用safari(即:直接启动safari而不是通过书签)导航页面工作正常(即:启动safari,转到url,登录,重新启动safari,返回url).

  • 我发现创建bookmarklet时激活的cookie是持久的,但是当通过bookmarklet访问safari时在会话期间设置的任何cookie都不是持久的.

  • 我想知道这是否是一个safari/iphone问题和/或是否有任何解决方法.非常感谢您提供的任何见解.

iphone persistence mobile-safari session-cookies

15
推荐指数
1
解决办法
1516
查看次数

NSURLConnection会自动保留从服务器发送的cookie吗?

我从ios登录我的龙卷风后端并发回一个secure_cookie,我注意到只要我验证了我设置的secure_cookie,我也可以请求其他信息.NSURLConnection持续cookie多久或者关闭应用后cookie会被删除?

这在Apple文档中提到:

URL加载系统自动发送适用于NSURLRequest的任何存储的cookie.除非请求指定不发送cookie.

session-cookies ios

15
推荐指数
1
解决办法
2万
查看次数

无法使用AngularJS的$ cookies删除cookie

我的Web应用程序是这样的,当用户登录服务器时,会在响应中添加Set-Cookie标头,如下所示:

Set-Cookie:JSESSIONID=1; Path=/myApp/; Secure

在注销时,我尝试在客户端(浏览器)上删除此cookie,因为我不关心是否在服务器上成功销毁会话,只要cookie被删除即可.任何挥之不去的"鬼"会话将不时在服务器上清理.

但是,我的应用程序无法删除JSESSIONID cookie.假设从中调用https://test.myserver.com/myApp/app/index.html#/mySubPage注销函数,注销函数执行:

delete $cookies["JSESSIONID"];
$location.path("/login");
Run Code Online (Sandbox Code Playgroud)

cookie不会被删除.刷新Chrome开发者工具的"资源"标签中的Cookie列表显示它仍然存在.重新加载登录页面并刷新"资源"选项卡中的cookie列表仍显示cookie.

为什么我不能从我的Javascript客户端删除不是HTTPOnly cookie的cookie?是导致问题的路径吗?不应该,因为脚本在cookie的路径中包含的页面上运行.Cookie通常不是那么难以处理,所以我很清楚,我可能会忽略一些微不足道的东西 - 但是任何帮助都会非常感激.

更新:

我在原帖中给了我的应用程序错误的路径.现在编辑它以反映正确的路径(好吧,抽象地).事实证明,这是该问题的关键信息.AngularJS使用应用程序的完整相对路径作为它创建/删除的所有cookie的路径属性,因此我们的服务器使用路径设置cookie /myApp/并且应用程序在相对路径上运行/myApp/app,因此Angular试图删除前者cookie,不存在(为了覆盖或删除现有cookie,名称,域和路径都需要与创建cookie时使用的相同).

javascript cookies session-cookies angularjs

15
推荐指数
2
解决办法
3万
查看次数

你如何改变Play 2.1!框架会话cookie名称

如何在Play 2.1中配置SESSION cookie的namne?

默认情况下,Play似乎会创建一个名为"PLAY_SESSION"的cookie.我该如何自定义名称?

谢谢

java scala session-cookies playframework playframework-2.0

15
推荐指数
1
解决办法
2069
查看次数

登录ISP Config会永远破坏我的PHP会话和cookie

要解释我的问题,我必须添加一些上下文信息:

我们有一个网站,它与会话一起工作,已经工作了7年没有任何问题,除了我们的服务器管理员,他无法登录,我们从来不知道为什么......直到现在......

我们的服务器管理员正在度假,所以我不得不做他的一些工作,它包括登录ISP Config,它位于同一服务器和域使用不同的端口(8080),我在那里登录,检查一些值,然后当我回到我们的网站时,我无法登录,就像我们的服务器管理员一样.

做一些调试我发现在每次刷新session_id()更改时会话都有问题.

使用ini_get我得到session.cookie_domain并且session.cookie_secure是空的.

如果我做了一个print_r($_COOKIE)没有PHPSESSID,如果我把它设置为任何值,它消失,即使我写了一个很长的到期它没有保存,如果我设置2个像这样的cookie:

setcookie("PHPSESSID", "MYSESSION", time()+365*24*60*60, '/');
setcookie("a", "b", time()+365*24*60*60, '/');
Run Code Online (Sandbox Code Playgroud)

然后print_r($_COOKIE);我明白了:

Array ( [a] => b )
Run Code Online (Sandbox Code Playgroud)

我没有任何.htaccess,所以我身边没有规则,似乎ISP配置中的某些内容改变了我存储cookie的方式.

我可以在webmasters.stackexchange.com上询问,但是当有人登录ISP配置后登录我的网站时,我需要一个PHP答案来设置新值.

这是我目前要测试的代码:

<?php
session_set_cookie_params(3600,"/");
session_start();
//$_SESSION[b_id]=1;
setcookie("PHPSESSID", "GTS", time()+365*24*60*60, '/');
setcookie("a", "b", time()+365*24*60*60, '/');
echo "<div>b_id: $_SESSION[b_id]</div>";
echo "<div>session_id: ".session_id()."</div>";
echo "<div>cookie_domain: ".ini_get('session.cookie_domain')."</div>";
echo "<div>save_path: ".ini_get('session.save_path')."</div>";
echo "<div>cookie_secure: ".ini_get('session.cookie_secure')."</div>";
print_r($_COOKIE);
/*echo "<pre>";
print_r(ini_get_all());
echo "</pre>";*/
?>
Run Code Online (Sandbox Code Playgroud)

这是输出,(session_id值每次都改变):

b_id:
session_id: du95eljbkct54qktvcd18a7ej0
cookie_domain:
save_path: /var/lib/php/sessions …
Run Code Online (Sandbox Code Playgroud)

php session-cookies ispconfig

15
推荐指数
1
解决办法
384
查看次数

即使我提供了 cf_clearance cookie,Cloudflare 如何检测到我是机器人?

即使我在发出正常请求时提供了所有数据、cookie 和参数,Cloudflare 如何知道该请求来自脚本?它检查什么?难道我做错了什么?例如(我已经编辑了一些值):

import requests

cookies = {
    '__Host-next-auth.csrf-token': '...',
    'cf_clearance': '...',
    'oai-asdf-ugss': '...',
    'oai-asdf-gsspc': '...',
    'intercom-id-dgkjq2bp': '...',
    'intercom-session-dgkjq2bp': '',
    'intercom-device-id-dgkjq2bp': '...',
    '_cfuvid': '...',
    '__Secure-next-auth.callback-url': '...',
    'cf_clearance': '...',
    '__cf_bm': '...',
    '__Secure-next-auth.session-token': '...',
}

headers = {
    'authority': 'chat.openai.com',
    'accept': 'text/event-stream',
    'accept-language': 'en-IN,en-US;q=0.9,en;q=0.8',
    'authorization': 'Bearer ...',
    'content-type': 'application/json',
    'cookie': '__Host-next-auth.csrf-token=...',
    'origin': 'https://chat.openai.com',
    'referer': 'https://chat.openai.com/chat',
    'sec-ch-ua': '"Brave";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'sec-gpc': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', …
Run Code Online (Sandbox Code Playgroud)

python cookies session-cookies cloudflare python-requests

15
推荐指数
1
解决办法
4766
查看次数

无法从带有Socket.IO的cookie获取Express会话ID

我在Node中有一个典型的Web应用程序,它使用Express框架和会话中间件.我也在为我的应用程序的某些动态部分使用Socket.io(目前,这是一个聊天机制,但这是切向的).我已经能够自己成功设置会话和socket.io,但是想要将它们组合起来(EG:将套接字聊天消息与用户帐户相关联而不会访问数据库).

应该注意(我可以看到这是一个可能的问题点),我在不同的端口上运行两个快速服务器:一个用于常规HTTP流量,一个用于HTTPS流量.但是,我让两台服务器都经过了一个完美配置并共享同一个会话存储.http和https页面之间的会话确实存在.最初通过HTTPS提供的页面设置会话,socket.io页面是vanilla HTTP.

我正在按照这里的指南来实现我正在寻找的有关集成socket.io和会话的内容.但是,在授权功能中,尽管我的应用程序的基于会话的部分按预期工作,但从未设置data.headers.cookie.更奇怪的是,在设置会话后,如果我console.log(document.cookie)在浏览器中执行操作,我会得到一个空字符串,但是当我使用Firefox开发人员工具栏查看我的cookie时,有一个用于express和connect的SID cookie.

以下是服务器代码的相关部分:

var config = {
    ip          : "127.0.0.1",
    httpPort    : 2031,
    httpsPort   : 2032
};

var utils       = require("./utils"),
    express     = require('express'),
    fs          = require('fs'),
    parseCookie = require('./node_modules/express/node_modules/connect').utils.parseCookie,
    routes      = require('./routes')(config); 

var httpsOpts = {
    key : fs.readFileSync("cert/server-key.pem").toString(),
    cert: fs.readFileSync("cert/server-cert.pem").toString()
 };

var app             = express.createServer(),
    https           = express.createServer(httpsOpts),
    io              = require("socket.io").listen(app, { log: false}),
    helpers         = require("./helpers.js"),
    session         = new express.session.MemoryStore(),
    sessionConfig   = express.session({
        store   : session,
        secret  : 'secret',
        key …
Run Code Online (Sandbox Code Playgroud)

javascript session-cookies node.js express socket.io

14
推荐指数
1
解决办法
3856
查看次数

Internet Explorer 9 AJAX请求中没有会话Cookie

Internet Explorer 9不会使用我的AJAX请求发送会话cookie.

当我通过AJAX向我的API发出身份验证请求时,它会返回一个设置会话cookie的响应.通过AJAX对API的后续调用不会将cookie发送回服务器.

API位于同一主机上.同样,常规的非AJAX页面请求也不会显示会话cookie.我关闭了Internet选项中的所有隐私和安全设置.Chrome会正确发送Cookie.

如何让IE返回cookie?谢谢!

ajax session-cookies internet-explorer-9

14
推荐指数
1
解决办法
4445
查看次数

会话到期时.Net MVC部分视图加载登录页面

我正在使用.net MVC 4构建一个Web应用程序.

我有ajax表单来编辑数据.

在此输入图像描述

如果用户空闲15分钟,它将使用户的会话到期.当用户单击编辑按钮时会发生这种情况,它会在部分内容中加载登录页面,因此现在会话到期.

在此输入图像描述

编辑链接 - cshtml代码

@Ajax.ActionLink("Edit", MVC.Admin.Material.ActionNames.TagEditorPanel, MVC.Admin.Material.Name, new { isView = "false", id = Model.ID.ToString() }, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "materialTagBox", InsertionMode = InsertionMode.Replace }, new { @class = "editlinks" })
Run Code Online (Sandbox Code Playgroud)

控制器/行动守则

[Authorize]
public virtual ActionResult TagEditorPanel(bool isView, int id)
{
   //do something
   return PartialView(MVC.Admin.Material.Views._tag, response);
}
Run Code Online (Sandbox Code Playgroud)

Web.config文件

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

我明白为什么会这样.我不知道如何解决它.我想阻止它,我想直接将用户重定向到登录页面.我怎样才能做到这一点?

提前致谢..!!!

ajax asp.net-mvc session-cookies asp.net-mvc-partialview c#-4.0

14
推荐指数
1
解决办法
7569
查看次数

Laravel Session总是更改Laravel 5.4中的每个刷新/请求

所以标题基本上都说明了,我使用的是Laravel 5.4,PHP 7.1,并且我的本地机器会话工作得很好.基本上每次我尝试登录或重新加载页面时,我都会获得一个新的CSRF令牌,从而破坏了所有内容.我使用数据库作为我的会话驱动程序,并且每创建一个请求就会在数据库中创建一个新条目.当我第一次升级时,这发生在我的本地机器上但修复它的解决方案是更新我的cookie_domain env变量,我得到它的工作.然而,在我的新服务器上,我已经尝试了我能想到的每个域,但它仍然不起作用.

这是我所知道的,

  • 会话Cookie未保存在Chrome - >应用程序 - > Cookie下,这确实出现在我的本地设置中.

  • CSRF-TOKEN在每个页面重新加载时获取一个新值,但XSRF-TOKEN cookie存在并在每次重新加载时保持其值.

  • 本地和我的新服务器都运行完全相同的git分支,并且都运行apache 2.4,Laravel 5.4和PHP 7.1,所以这让我觉得它是某种配置问题.本地和服务器都运行centos 7

  • 每个请求都在DB中创建一个新会话,这发生在get,post和ajax请求中.

我认为这是来自某个地方的配置问题,但我不知道,任何帮助将不胜感激.如果它有帮助,查看我的响应Header我的初始页面加载sid和laravel会话都出现在'Set-Cookie'命令下,但实际上都没有保存到本地应用程序cookie存储.

编辑/更新 所以最初我回答了我自己的问题,说出我认为是修复的问题,但是这个修复程序已经不再有效了,而且我在整个地方都遇到了这个问题.因此,更新我的问题与以前一样,尝试做任何事情都会创建一个新会话,重新加载和导航几个页面会因为ajax请求和其他此类活动而增加数十个会话.

我的设置现在就是这个,我有3台服务器,这三台服务器都运行了一个克隆的图像,这意味着它们是相同的,但其中一个是子域,development.mysite.com,另外两个是主站点mysite的负载均衡.COM.因此,我能提出的唯一可能的解释是,由于我的子域名,laravel无法理解我的设置.我已经在.env文件(development.mysite.com,.mysite.com,mysite.com,.development.mysite.com等)中尝试了COOKIE_DOMAIN的所有可能组合,并且我已经向我的主机添加了几十个选项无济于事.关于这可能是什么的任何想法?

**编辑/更新#2**除此之外,我发现它可能与我的域名使用是一个子域名,其中主域名也运行laravel,如果是这样,我将不得不弄清楚如何和为什么.

cookies session session-cookies laravel laravel-5

14
推荐指数
2
解决办法
1万
查看次数