tenfourfox/devtools/client/webconsole/test/test_hpkp-invalid-headers.sjs
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

54 lines
1.9 KiB
JavaScript

/* 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);
}