标签: cookie

什么是无 cookie 域?

什么是无 cookie 域?我已经多次看到这些词,但我一直不明白它是什么。

domain web cookieless cookie

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

使用 cookie 控制 Nginx 代理目标?

我正在尝试使用有趣的 Apache mod_rewrite 设置转换反向代理以使用 Nginx(由于外部问题,我们正在从 Apache 迁移到 Nginx,除了这部分外,大多数一切都正常)。

我最初的设置是读取 HTTP cookie(由某些应用程序设置)并根据其值将反向代理定向到不同的后端。它是这样的:

RewriteCond %{HTTP_COOKIE}  proxy-target-A
RewriteRule ^/original-request/ http://backend-a/some-application [P,QSA]

RewriteCond %{HTTP_COOKIE}  proxy-target-B
RewriteRule ^/original-request http://backend-b/another-application [P,QSA]

RewriteRule ^/original-request http://primary-backend/original-application [P,QSA]
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 Nginx 实现相同的目标,我的初始配置是这样的(其中“proxy_override”是 cookie 的名称):

location /original-request {
    if ($cookie_proxy_override = "proxy-target-A") {
        rewrite . http://backend-a/some-application;
        break;
    }
    if ($cookie_proxy_override = "proxy-target-B") {
        rewrite . http://backend-b/another-application;
        break;
    }
    proxy_pass http://primary-backend/original-application;
}
Run Code Online (Sandbox Code Playgroud)

但它没有。我试图通过编写主代理重定向到基于${cookie_proxy_override}的内容来查看 Nginx 是否可以读取我的 cookie ,我可以看到它读取的内容很好,但ifs 似乎总是失败。

根据 Rikih 的回答,我的下一次尝试是这样的:

location /original-request {
    if ($http_cookie ~ "proxy-target-A") …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite nginx reverse-proxy cookie

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

是否允许中间代理在代理身份验证期间添加 cookie?

我最近遇到了某种安全设备 (BlueCoat),它要求所有到 Internet 的连接都必须通过它进行代理(你好,中间人),因此使用特殊的 SSL 证书来拦截所有流量。

这阻止了 Git 的正常操作,即使设置了适当的http.proxyhttp.sslCAInfo属性以确保 SSL 连接本身有效。

使用环境变量GIT_CURL_VERBOSE=1,我们发现在使用时git clone,会出现HTTP 407(需要代理认证)。Git 正确完成此身份验证,最后,设备返回带有 cookie 标头的 HTTP 200 Set-Cookie

Git 然后将连接到目标服务器,但没有cookie,导致 HTTP 401。

解决这个问题的方法是设置git配置选项 http.saveCookies=true

问题: 中间代理添加cookies真的是RFC标准允许的吗?

Anthony Rich向 http-state 邮件列表提出了同样的问题,但没有任何回应。他确实注意到在

RFC 2965 HTTP 状态管理机制,3.5 缓存代理角色它说:代理不得在代理响应(请求)中引入自己的 Set-Cookie2 (Cookie) 标头。

但是,取代的 RFC 6265根本不再提及这一点。

http proxy http-headers cookie

7
推荐指数
1
解决办法
2407
查看次数

在haproxy中设置cookie时如何不重定向?

在我的网站上,我使用Haproxy负载均衡器将使用移动设备的用户重定向到移动网站。我对此有一些抱怨,并希望为用户提供一个返回“经典”门户的链接。由于并非所有子页面都以移动格式提供,因此我必须首先选择内容是否可用。

    acl path_root path /
    acl path_mobile path_beg /faq
    acl site_classic hdr_sub(cookie) CLASSIC=
    acl ua_smartphone hdr_reg(User-Agent) -i iphone ipod android bada
    redirect location http://s.tld if path_root ua_smartphone !site_classic
    redirect prefix http://s.tld if path_mobile ua_smartphone !site_classic
Run Code Online (Sandbox Code Playgroud)

如果用户进入顶级目录,只需重定向该位置。如果“移动”用户点击移动格式中可用的内容,则重定向包括完整路径。到目前为止,这一切都很好。

现在,当他/她单击移动版本中设置名为“CLASSIC”的 cookie 的链接时,我不想再重定向用户。

cookie 设置正确并且工作正常。如果我写以下重定向工作:

    acl site_classic hdr_sub(cookie) CLASSIC=
    redirect location http://s.tld if site_classic
Run Code Online (Sandbox Code Playgroud)

我还尝试了所有可以想到的检查 cookie 的方法,例如 CLASSIC=1 CLASSIC=true CLASSIC=portal 等,并在代码中

    acl site_classic hdr_sub(cookie) CLASSIC
    acl site_classic hdr_sub(cookie) CLASSIC=
    acl site_classic hdr_sub(cookie) CLASSIC=1
    acl site_classic hdr_sub(cookie) CLASSIC=true
    acl site_classic hdr_sub(cookie) CLASSIC=portal
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用? …

load-balancing mobile-devices redirect haproxy cookie

5
推荐指数
1
解决办法
2611
查看次数

使用 Apache mod_header 为所有 cookie 提供 HttpOnly 和安全 cookie

我在网站上使用 Apache 2.2.29。apache 既可以为来自 Drupal 的页面提供服务,也可以作为内部应用程序服务器的反向代理。出于安全原因,我们希望为发送给客户端的所有 cookie 添加标志 HttpOnly 和安全。为了做到这一点,我在 apache 中设置了以下规则

Header edit Set-Cookie "(?i)^((?:(?!;\s?HttpOnly).)+)$" "$1; HttpOnly"
Header edit Set-Cookie "(?i)^((?:(?!;\s?secure).)+)$" "$1; secure"
Run Code Online (Sandbox Code Playgroud)

对于某些 cookie,这工作正常,但其他 cookie 没有被修改。查看响应标题,我看到以下内容:

HTTP/1.1 200 OK
Date: Thu, 20 Nov 2014 22:50:01 GMT
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Thu, 20 Nov 2014 22:50:01 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Set-Cookie: SESSbfb02014bca2e49545c2cacd8a8cfcfa=perqn1l3mn2saselmabnn4vla7; expires=Sun, 14-Dec-2014 02:23:21 GMT; path=/; domain=.www6.server.com; HttpOnly; secure
Set-Cookie: textsize=100; expires=Fri, 20-Nov-2015 22:50:02 GMT; path=/; HttpOnly; secure
X-Cnection: close …
Run Code Online (Sandbox Code Playgroud)

cookie apache-2.2

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

Apache 反向代理 - ProxyPassReverseCookieDomain 似乎不起作用

我似乎无法让 Apache 指令ProxyPassReverseCookieDomain实际重写域。

我的指令设置如下:

ProxyPassReverseCookieDomain "myinternalproxydomain.com" "thepublicdomain.com"
Run Code Online (Sandbox Code Playgroud)

我使用浏览器中的“网络”选项卡,可以看到Set-Cookie域没有被更改。我将 Set-Cookie 域视为thepublicdomain.com.thepublicdomain.com。我尝试过添加

ProxyPassReverseCookieDomain "myinternalproxydomain.com" ".thepublicdomain.com"
Run Code Online (Sandbox Code Playgroud)

我已经搜索并阅读了文档,但是我不明白为什么没有设置 cookie 的域。

<VirtualHost *:443>
DocumentRoot /var/www/myinternalproxydomain.com
ServerName myinternalproxydomain.com

SSLEngine on
SSLCertificateFile /etc/ssl/certs/my.crt
SSLCertificateKeyFile /etc/ssl/private/my.key
SSLCACertificateFile /etc/ssl/certs/my.ca-bundle

SSLProxyEngine On
ProxyRequests Off
ProxyHTMLEnable On
ProxyPreserveHost Off
ProxyHTMLInterp On
ProxyHTMLExtended On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass "/" "https://thepublicdomain.com/"
ProxyPassReverse / https://thepublicdomain.com/
ProxyPassReverseCookiePath / /
ProxyPassReverseCookieDomain "myinternalproxydomain.com" "thepublicdomain.com"
ProxyPassReverseCookieDomain "myinternalproxydomain.com" "thepublicdomain.com"
ProxyPassReverseCookieDomain "myinternalproxydomain.com" ".thepublicdomain.com"

DirectorySlash On
ProxyHTMLURLMap "https://thepublicdomain.com" …
Run Code Online (Sandbox Code Playgroud)

proxy cookie apache-2.4

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