blankie
v5.0.0
Published
a content security policy plugin for hapi
Readme
blankie
A CSP plugin for hapi.
Usage
This plugin depends on scooter to function.
To use it:
'use strict';
const Hapi = require('@hapi/hapi');
const Blankie = require('blankie');
const Scooter = require('@hapi/scooter');
const internals = {};
const server = Hapi.server();
internals.init = async () => {
await server.register([Scooter, {
plugin: Blankie,
options: {} // specify options here
}]);
await server.start();
};
internals.init().catch((err) => {
throw err;
});Options may also be set on a per-route basis:
'use strict';
const Hapi = require('@hapi/hapi');
const Blankie = require('blankie');
const Scooter = require('@hapi/scooter');
const server = Hapi.server();
server.route({
method: 'GET',
path: '/something',
config: {
handler: (request, h) => {
return 'these settings are changed';
},
plugins: {
blankie: {
scriptSrc: 'self'
}
}
}
});Note that this setting will NOT be merged with your server-wide settings.
You may also set config.plugins.blankie equal to false on a route to disable CSP headers completely for that route.
Options
baseUri: Values forbase-uridirective. Defaults'self'.childSrc: Values forchild-srcdirective.connectSrc: Values for theconnect-srcdirective. Defaults'self'.defaultSrc: Values for thedefault-srcdirective. Defaults to'none'.fontSrc: Values for thefont-srcdirective.formAction: Values for theform-actiondirective.frameAncestors: Values for theframe-ancestorsdirective.frameSrc: Values for theframe-srcdirective.imgSrc: Values for theimage-srcdirective. Defaults to'self'.manifestSrc: Values for themanifest-srcdirective.mediaSrc: Values for themedia-srcdirective.objectSrc: Values for theobject-srcdirective.oldSafari: Force enabling buggy CSP for Safari 5.pluginTypes: Values for theplugin-typesdirective.reflectedXss: Value for thereflected-xssdirective. Must be one of'allow','block'or'filter'.reportOnly: Append '-Report-Only' to the name of the CSP header to enable report only mode.reportUri: Value for thereport-uridirective. This should be the path to a route that accepts CSP violation reports.requireSriFor: Value forrequire-sri-fordirective.sandbox: Values for thesandboxdirective. May be a boolean or one of'allow-forms','allow-same-origin','allow-scripts'or'allow-top-navigation'.scriptSrc: Values for thescript-srcdirective. Defaults to'self'.styleSrc: Values for thestyle-srcdirective. Defaults to'self'.workerSrc: Values for theworker-srcdirective. Defaults to'self'.generateNonces: Whether or not to automatically generate nonces. Defaults totrue. May be a boolean or one of'script'or'style'. When enabled your templates rendered through vision will havescript-nonceand/orstyle-nonceautomatically added to their context, additionallyrequest.plugins.blankie.nonceswill contain one or both of the'script'and'style'properties containing these values for use outside of vision.
