Skip to content
This repository was archived by the owner on Apr 29, 2019. It is now read-only.

Commit 9da1f6f

Browse files
author
Yevhen Miroshnychenko
committed
MAGETWO-82057: Varnish/Fastly - Magento can cache & return cached cart and similar sensitive data
1 parent b64d600 commit 9da1f6f

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

app/code/Magento/PageCache/etc/varnish4.vcl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,6 @@ sub vcl_backend_response {
141141
set beresp.do_gzip = true;
142142
}
143143

144-
# cache only successfully responses and 404s
145-
if (beresp.status != 200 && beresp.status != 404) {
146-
set beresp.ttl = 0s;
147-
set beresp.uncacheable = true;
148-
return (deliver);
149-
} elsif (beresp.http.Cache-Control ~ "private") {
150-
set beresp.uncacheable = true;
151-
set beresp.ttl = 86400s;
152-
return (deliver);
153-
}
154-
155144
if (beresp.http.X-Magento-Debug) {
156145
set beresp.http.X-Magento-Cache-Control = beresp.http.Cache-Control;
157146
}
@@ -161,14 +150,25 @@ sub vcl_backend_response {
161150
unset beresp.http.set-cookie;
162151
}
163152

164-
# If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
165-
if (beresp.ttl <= 0s ||
153+
# cache only successfully responses and 404s
154+
if (beresp.status != 200 && beresp.status != 404) {
155+
set beresp.ttl = 0s;
156+
set beresp.uncacheable = true;
157+
} elseif (beresp.ttl <= 0s ||
166158
beresp.http.Surrogate-control ~ "no-store" ||
167-
(!beresp.http.Surrogate-Control && beresp.http.Vary == "*")) {
159+
(!beresp.http.Surrogate-Control &&
160+
beresp.http.Cache-Control ~ "no-cache|no-store" ||
161+
beresp.http.Vary == "*")
162+
) {
163+
# If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
168164
# Mark as Hit-For-Pass for the next 2 minutes
169165
set beresp.ttl = 120s;
170166
set beresp.uncacheable = true;
167+
} elsif (beresp.http.Cache-Control ~ "private") {
168+
set beresp.uncacheable = true;
169+
set beresp.ttl = 86400s;
171170
}
171+
172172
return (deliver);
173173
}
174174

app/code/Magento/PageCache/etc/varnish5.vcl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,6 @@ sub vcl_backend_response {
142142
set beresp.do_gzip = true;
143143
}
144144

145-
# cache only successfully responses and 404s
146-
if (beresp.status != 200 && beresp.status != 404) {
147-
set beresp.ttl = 0s;
148-
set beresp.uncacheable = true;
149-
return (deliver);
150-
} elsif (beresp.http.Cache-Control ~ "private") {
151-
set beresp.uncacheable = true;
152-
set beresp.ttl = 86400s;
153-
return (deliver);
154-
}
155-
156145
if (beresp.http.X-Magento-Debug) {
157146
set beresp.http.X-Magento-Cache-Control = beresp.http.Cache-Control;
158147
}
@@ -162,14 +151,25 @@ sub vcl_backend_response {
162151
unset beresp.http.set-cookie;
163152
}
164153

165-
# If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
166-
if (beresp.ttl <= 0s ||
154+
# cache only successfully responses and 404s
155+
if (beresp.status != 200 && beresp.status != 404) {
156+
set beresp.ttl = 0s;
157+
set beresp.uncacheable = true;
158+
} elseif (beresp.ttl <= 0s ||
167159
beresp.http.Surrogate-control ~ "no-store" ||
168-
(!beresp.http.Surrogate-Control && beresp.http.Vary == "*")) {
160+
(!beresp.http.Surrogate-Control &&
161+
beresp.http.Cache-Control ~ "no-cache|no-store" ||
162+
beresp.http.Vary == "*")
163+
) {
164+
# If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
169165
# Mark as Hit-For-Pass for the next 2 minutes
170166
set beresp.ttl = 120s;
171167
set beresp.uncacheable = true;
168+
} elsif (beresp.http.Cache-Control ~ "private") {
169+
set beresp.uncacheable = true;
170+
set beresp.ttl = 86400s;
172171
}
172+
173173
return (deliver);
174174
}
175175

0 commit comments

Comments
 (0)