|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
From 090ee789dda468fe0d9b715ec4e5dc47a948a239 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
Date: Wed, 2 Mar 2016 11:07:16 +0100
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
Subject: [PATCH] cookie: do not refuse cookies for localhost
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
Closes #658
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
---
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
lib/cookie.c | 10 ++++++----
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
tests/data/test1136 | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
2 files changed, 7 insertions(+), 4 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
diff --git a/lib/cookie.c b/lib/cookie.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
index d62f446..e5c7b7e 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
--- a/lib/cookie.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+++ b/lib/cookie.c
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
@@ -788,10 +788,12 @@ Curl_cookie_add(struct SessionHandle *data,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
#ifdef USE_LIBPSL
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
/* Check if the domain is a Public Suffix and if yes, ignore the cookie.
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
This needs a libpsl compiled with builtin data. */
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
- if(co->domain && !isip(co->domain) && (psl = psl_builtin()) != NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
- if(psl_is_public_suffix(psl, co->domain)) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
- infof(data, "cookie '%s' dropped, domain '%s' is a public suffix\n",
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
- co->name, co->domain);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ if(domain && co->domain && !isip(co->domain)) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ if (((psl = psl_builtin()) != NULL)
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ && !psl_is_cookie_domain_acceptable(psl, domain, co->domain)) {
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ infof(data,
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ "cookie '%s' dropped, domain '%s' must not set cookies for '%s'\n",
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+ co->name, domain, co->domain);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
freecookie(co);
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
}
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
diff --git a/tests/data/test1136 b/tests/data/test1136
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
index e42ca06..d3327e8 100644
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
--- a/tests/data/test1136
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+++ b/tests/data/test1136
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
@@ -58,6 +58,7 @@ http://www.example.ck/1136 http://www.ck/1136 http://z-1.compute-1.amazonaws.com
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
.www.example.ck TRUE / FALSE 0 test2 allowed2
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
.www.ck TRUE / FALSE 0 test4 allowed4
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
+.z-1.compute-1.amazonaws.com TRUE / FALSE 0 test5 forbidden5
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
</file>
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
</verify>
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
</testcase>
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
--
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
2.5.0
|
|
![](https://seccdn.libravatar.org/avatar/9df0f3bf6a877587e4d34c87f124e83974433fa519dc892a3f428ed60da9351f?s=16&d=retro) |
e2daf98 |
|