'use strict'; const utils = require('../utils'); // Set Strict-Transport-Security header module.exports = options => { return async function hsts(ctx, next) { await next(); const opts = utils.merge(options, ctx.securityOptions.hsts); if (utils.checkIfIgnore(opts, ctx)) return; let val = 'max-age=' + opts.maxAge; // If opts.includeSubdomains is defined, // the rule is also valid for all the sub domains of the website if (opts.includeSubdomains) { val += '; includeSubdomains'; } ctx.set('strict-transport-security', val); }; };