Hi,
At
https://cwiki.apache.org/confluence/display/OFBIZ/How+to+Secure+HTTP+Headers I have summarize my work on HTTP Security Headers
I have done the easy part, ie all headers but Content-Security-Policy. They are grouped in RequestHandler.renderView() just before rendering the view
For Content-Security-Policy I'd like to use the safer one OOTB ie: resp.setHeader("Content-Security-Policy", "default-src 'self'");
This means that all resources links should be local. The resources types are script, object (plugins), style, img, media, frame, font, connect and form.
No need to say that it's very ambitious and not for today.
The 1st task to handle is to remove as much as possible JavaScript snippets and have as much as possible JavaScript files.
There are already few Jiras about that and we are slowly heading in the right direction.
It's not sure we can reach this very ambitious goal and the good news is that it's not a problem if we don't.
When we will hit cases where local it's not possible then we can define so called nonce to be sure the resources are loaded from the right place.
In no case we should OOTB use the lazy unsafe-inline and eval-inline.
To not block anything for the moment I have committed a simple most restrictive Content-Security-Policy-Report-Only header at r1812720
Then we can look at the issues using browsers tools (there are so much)
The next step is to report the errors (when there will not be too much) in the log using a report-uri
And ultimately to use OOTB the most simple and constraining policy, with exceptions of course (as ever).
Note: if we encounter performance issue we can comment out the current Content-Security-Policy-Report-Only
Jacques