JM Website Security Hardening asks what the site is allowed to do, in plain language, and sends the matching browser rules.
You choose:
The plugin writes the Content Security Policy and the related security headers from those answers. A log shows addresses that fell outside the rules, so you can start without blocking anything and turn blocking on when the result looks right.
The recommended answers suit a normal site. Strict answers refuse code written directly in the page and can break a theme, a plugin, the dashboard, or the login screen.
Image limits are checked for requests WordPress handles. On Apache and LiteSpeed they are also written into the uploads folder, between the markers BEGIN JMWSH and END JMWSH. On other servers the settings screen shows configuration you can add yourself.
Depending on the answers, the plugin can send:
jmwsh_settings filters the normalized settings before headers are built.jmwsh_headers filters the final header names and values.jmwsh_download_hosts filters the host names allowed to display hosted files.jmwsh_htaccess_rules filters the Apache lines written to the uploads folder.