About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools

Warning: This page has not been updated in over over a year and may be outdated or deprecated.

Content Security Policy

:!: This feature was introduced in VuFind 7.0.

HTTP responses can include a Content Security Policy header which provides restrictions on the behavior of the client in order ot provide improved security. VuFind supports the creation of CSP headers to restrict web browser behavior and prevent common security vulnerabilities such as cross-site scripting.

You can learn more at the Mozilla Developer Resources pages about Content Security Policies and CSP Headers.

Configuring VuFind's CSP

Configuration File

All settings related to Content Security Policies can be found in contentsecuritypolicy.ini.

Enforcing vs. Reporting

The CSP can be configured to either block violating content, or simply to report problems. VuFind is set to reporting mode by default to avoid backward compatibility breaks.

Receiving Reports

When in reporting mode, you can set the report-to setting in contentsecuritypolicy.ini to send reports of violations to a URI that implements a simple API. VuFind does not currently include a built-in reporting endpoint, but several options exist, including:

All violations are usually reported in browser's console too, but it is preferable to set up some service to ensure you able to catch all issues your users could be facing.

Best Practices / Recommendations

Here are some tips and recommendations:

  • By default, VuFind is set up to be fairly permissive about which scripts it will execute; if you are not using any options that rely on external scripts, or if you can reliably eliminate the use of non-HTTPS files, you should consider applying more restrictive settings than the defaults.
  • By default, VuFind assumes that all CSS styles, images and fonts will be served up locally; if you are using any services (like Google fonts for example) or customizations that pull these resources in from third-party sites, you will need to set up more permissive settings.
  • Consider setting up a reporting server (see tool options listed above) so you can test whether any pages of your site are violating your CSP; once you have determined that the site is working as expected, you should change 'enable' settings from 'report_only' to 'true' for your production site in order to improve security.
administration/security/content_security_policy.txt · Last modified: 2020/09/22 13:26 by demiankatz