summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES-2.0.txt2
-rw-r--r--cups/http.c11
-rw-r--r--templates/es/header.tmpl.in8
-rw-r--r--templates/header.tmpl.in8
4 files changed, 29 insertions, 0 deletions
diff --git a/CHANGES-2.0.txt b/CHANGES-2.0.txt
index 17455f620..721007b5e 100644
--- a/CHANGES-2.0.txt
+++ b/CHANGES-2.0.txt
@@ -8,6 +8,8 @@ CHANGES IN CUPS V2.0.1
- Printer sharing did not work when systemd was being used (STR #4497)
- cupsGetPPD* would return a symlink to the PPD in /etc/cups/ppd even if
it was not readable by the user (STR #4500)
+ - The web interface now protects against frame "click-jacking" attacks
+ (STR #4492)
- Fixed a crash in ippAttributeString (<rdar://problem/17903871>)
- RPMs did not build (STR #4490)
diff --git a/cups/http.c b/cups/http.c
index 4e1729fd8..dfcd759ac 100644
--- a/cups/http.c
+++ b/cups/http.c
@@ -3611,6 +3611,17 @@ httpWriteResponse(http_t *http, /* I - HTTP connection */
return (-1);
}
}
+
+ /*
+ * "Click-jacking" defense (STR #4492)...
+ */
+
+ if (httpPrintf(http, "X-Frame-Options: DENY\r\n"
+ "Content-Security-Policy: frame-ancestors 'none'\r\n") < 1)
+ {
+ http->status = HTTP_STATUS_ERROR;
+ return (-1);
+ }
}
if (httpWrite2(http, "\r\n", 2) < 2)
diff --git a/templates/es/header.tmpl.in b/templates/es/header.tmpl.in
index 044966157..a6df94cfb 100644
--- a/templates/es/header.tmpl.in
+++ b/templates/es/header.tmpl.in
@@ -8,7 +8,15 @@
{refresh_page?<meta http-equiv="refresh" content="{refresh_page}">:}
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="viewport" content="width=device-width">
+ <style>html{display:none;}</style>
<script type="text/javascript"><!--
+ /* Only display document if we are not in a frame... */
+ if (self == top) {
+ document.documentElement.style.display = 'block';
+ } else {
+ top.location = self.location;
+ }
+
/* Show an error if cookies are disabled */
function check_cookies() {
if (!navigator.cookieEnabled) {
diff --git a/templates/header.tmpl.in b/templates/header.tmpl.in
index e41da576b..a4beb53df 100644
--- a/templates/header.tmpl.in
+++ b/templates/header.tmpl.in
@@ -8,7 +8,15 @@
{refresh_page?<meta http-equiv="refresh" content="{refresh_page}">:}
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="viewport" content="width=device-width">
+ <style>html{display:none;}</style>
<script type="text/javascript"><!--
+ /* Only display document if we are not in a frame... */
+ if (self == top) {
+ document.documentElement.style.display = 'block';
+ } else {
+ top.location = self.location;
+ }
+
/* Show an error if cookies are disabled */
function check_cookies() {
if (!navigator.cookieEnabled) {