标签: missing-cookies

切换服务器后,为什么Laravel Sessions在Safari和IE中失败?

具有Webmin,Apache Centos 6,Laravel应用程序和旧数据库模式的新VPS服务器.所有在旧共享主机上工作正常,但由于某种原因,在VPS上Laravel的会话存储(Laravel 3.0)不再适用于Safari或Internet Explorer.

似乎会话ID只是没有保存在客户端上.是强制Laravel会话ID保存在客户端浏览器上的好方法吗?

当Chrome/Firefox看起来工作得很好时,Safari/IE存储可能会产生此问题的Cookie的方式有何不同?

php session-cookies missing-cookies laravel laravel-3

6
推荐指数
2
解决办法
5108
查看次数

为什么Safari没有从我的Perl CGI脚本中设置cookie?

我有一个基于Perl的网站,试图在用户第一次访问时设置一些cookie,我只是注意到Safari已经停止设置除了第一个传递的cookie之外的所有cookie.首次访问时,应设置两个cookie,即"location"和"referrer".在IE和Firefox中,cookie正确设置,但Safari仅设置"位置"cookie.我尝试更改名称,值等等,我得出的结论是Safari只是设置了两个cookie中的第一个:

以下是设置cookie的代码:

# Add location cookie if necessary
if(!$query->cookie('location') && $user_location) {
    my $cookie = $query->cookie(-name=>'location',-value=>qq|$user_lcoation|,-domain=>".domain.com",-path=>'/',-expires=>'+1Y');
    push(@cookies,$cookie);
}

# Add referrer if first visit
if(!$query->cookie('referrer')) {
    if($ENV{'HTTP_REFERER'}) {
        my $cookie = $query->cookie(-name=>'referrer',-value=>$ENV{'HTTP_REFERER'},-domain=>".domain.com",-path=>'/',-expires=>'+3M');
        push(@cookies,$cookie);
    }
    else {
        my $cookie = $query->cookie(-name=>'referrer',-value=>'unknown',-domain=>".domain.com",-path=>'/',-expires=>'+3M');
        push(@cookies,$cookie);
    }
}

if(scalar(@cookies)) {
    print $query->header(-cookie=>\@cookies);
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试从curl访问网站时得到的结果:

curl -so /dev/null -D - http://domain.com

HTTP/1.1 200 OK
Date: Thu, 18 Feb 2010 20:19:17 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.8 mod_perl/2.0.4 Perl/v5.8.8
Set-Cookie: location=Dallas; domain=.domain.com; path=/; …
Run Code Online (Sandbox Code Playgroud)

cookies safari perl missing-cookies

4
推荐指数
1
解决办法
1449
查看次数

Request中不存在RequestVerificationToken cookie

我的ASP.NET MVC应用程序通过使用ValidateAntiForgeryToken属性并调用Html.AntiForgeryToken来写入带有标记值的隐藏输入元素来阻止CSRF攻击,并将标记放在cookie中.

我的异常日志是报告HttpAntiForgeryException的出现,看起来它们是从有效请求触发的(推荐者看起来正确).导致异常的响应还在表单字段中包含带有标记值的__RequestValidationToken.但是,请求中缺少必要的cookie,导致验证失败并抛出异常.

我想到为什么这个cookie丢失了,并提出了以下可能的原因:

  1. 域名的Cookie集合已满. - 如果是这种情况,我希望在每个请求中看到20/50个cookie(BTW所有用户代理都是IE7和IE8)并且不知何故cookie被丢弃.我在异常的各种情况下看到3到23个饼干
  2. 已达到Cookie的数据限制. - 这没有发生.通过查看日志,我可以看到cookie集合很小.
  3. 在添加cookie之前,将回复响应. - 不确定这个.手动调用头部中的Reponse.Flush会导致异常,说明在发送repsonse后无法修改cookie集合.

在解散中,我转向SO的人,并询问我可以调查的这个丢失的cookie的任何其他可能原因.

asp.net-mvc csrf antiforgerytoken missing-cookies

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