Set custom csp rule for OpenID consent form submit based on schema
This commit is contained in:
+11
@@ -487,6 +487,17 @@ function renderInteractionPage(provider) {
|
||||
|
||||
options.submitUrl = `${ROUTE_PREFIX}/interaction/${uid}/${options.hasAccess ? 'confirm' : 'abort'}`;
|
||||
|
||||
let formActionRule = '*';
|
||||
// add custom schemata to csp form-action rules
|
||||
client.loginRedirectUri.split(',').forEach((u) => {
|
||||
try {
|
||||
const url = new URL(u);
|
||||
if (url.protocol) formActionRule += ` ${url.protocol}`;
|
||||
} catch (e) {}
|
||||
});
|
||||
|
||||
res.set('Content-Security-Policy', `"default-src 'none'; frame-src 'self' cloudron.io *.cloudron.io; connect-src wss: https: 'self' *.cloudron.io; script-src https: 'self' 'unsafe-inline' 'unsafe-eval'; img-src * data:; style-src https: 'unsafe-inline'; object-src 'none'; font-src https: 'self'; frame-ancestors 'none'; base-uri 'none'; form-action ${formActionRule};"`);
|
||||
|
||||
return res.render('interaction', options);
|
||||
}
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user