summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs')
-rw-r--r--devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs53
1 files changed, 53 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs b/devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs
new file mode 100644
index 000000000..cd0e18523
--- /dev/null
+++ b/devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs
@@ -0,0 +1,53 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+function handleRequest(request, response)
+{
+ response.setHeader("Content-Type", "text/plain; charset=utf-8", false);
+
+ let issue;
+ switch (request.queryString) {
+ case "badSyntax":
+ response.setHeader("Public-Key-Pins", "\"");
+ issue = "is not syntactically correct.";
+ break;
+ case "noMaxAge":
+ response.setHeader("Public-Key-Pins", "max-age444");
+ issue = "does not include a max-age directive.";
+ break;
+ case "invalidIncludeSubDomains":
+ response.setHeader("Public-Key-Pins", "includeSubDomains=abc");
+ issue = "includes an invalid includeSubDomains directive.";
+ break;
+ case "invalidMaxAge":
+ response.setHeader("Public-Key-Pins", "max-age=abc");
+ issue = "includes an invalid max-age directive.";
+ break;
+ case "multipleIncludeSubDomains":
+ response.setHeader("Public-Key-Pins",
+ "includeSubDomains; includeSubDomains");
+ issue = "includes multiple includeSubDomains directives.";
+ break;
+ case "multipleMaxAge":
+ response.setHeader("Public-Key-Pins",
+ "max-age=444; max-age=999");
+ issue = "includes multiple max-age directives.";
+ break;
+ case "multipleReportURIs":
+ response.setHeader("Public-Key-Pins",
+ 'report-uri="http://example.com"; ' +
+ 'report-uri="http://example.com"');
+ issue = "includes multiple report-uri directives.";
+ break;
+ case "pinsetDoesNotMatch":
+ response.setHeader(
+ "Public-Key-Pins",
+ 'max-age=999; ' +
+ 'pin-sha256="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; ' +
+ 'pin-sha256="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="');
+ issue = "does not include a matching pin.";
+ break;
+ }
+
+ response.write("This page is served with a PKP header that " + issue);
+}