I agree with the marketable value of CSP but I don't think it will lose
appeal if we make it disabled by default. As I said, I agree to eventually
enable it by default, but I don't think the time is ripe yet.

On Tue, Jan 21, 2020 at 2:27 PM Martijn Dashorst <martijn.dasho...@gmail.com>
wrote:

> Not sure if enabling it by default is a bad thing when you can, as per
> migration guide, disable it with one statement in your
> WebApplication#init().
>
> Also, when looking at marketable features, having CSP, and enabled by
> default, is something that publications will take notice of. Just like
> being Jakarta EE prepared:
>
> "Deliver Secure Future Proof Web Applications with Apache Wicket 9
>
> Apache Wicket 9 delivers Content Security Policy (CSP) protection
> out-of-the-box, protecting web applications against a variety of web
> based attack vectors. CSP is a cross-browser technology that prevents
> several attacks on web applications by limiting the ....
>
> With the adoption of the Jakarta EE standards, Apache Wicket 9 is one
> of the first Java frameworks prepared for the new future of enterprise
> Java. <insert blurb about licensing etc>
> "
>
> Martijn
>
> On Tue, Jan 21, 2020 at 2:00 PM Andrea Del Bene <an.delb...@gmail.com>
> wrote:
> >
> > IMHO forcing users to adopt a new potential breaking feature is a
> > mistake. We should wait for a wider interest in CSP to enable it by
> > default. Don't get me wrong, I'm not underestimating the importance of
> > this feature which is a fantastic tool to ensure security. Nonetheless,
> > I believe that forcing users to comply with it will only have the effect
> > of upsetting them.
> >
> > On 1/21/20 1:27 PM, Emond Papegaaij wrote:
> > > On Tue, Jan 21, 2020 at 12:36 PM Martin Grigorov <mgrigo...@apache.org>
> wrote:
> > >> On Mon, Jan 13, 2020 at 11:15 PM Emond Papegaaij <
> emond.papega...@gmail.com>
> > >> wrote:
> > >>
> > >>> I've discussed this with our unit manager, and got permission to
> > >>> donate our CSP code to Wicket. I think a strong, out of the box CSP
> is
> > >>> a killer feature to have for Wicket 9. Not many frameworks can match
> > >>> this. For this, I would like to continue working on the following
> > >>> parts:
> > >>> * Remove all inline styling and JS from Wicket. I will need some help
> > >>> with this, especially the Form related code.
> > >>> * Make sure all examples work find with a strong CSP enabled
> > >>> * Add the CSP code to Wicket and provide several presets (strong,
> > >>> unsafeJsAndStyling, reportOnly, disabled)
> > >>> * Enable CSP with the strong preset by default
> > >>>
> > >> I think this will break all applications which migrate from earlier
> version.
> > >> I like that Wicket will be more secure by default but
> > >> 1) most people do not really care about CSP (yet)
> > >> 2) last time when I tested CSP it was behaving differently on
> different
> > >> browsers. I hope it is better now since only Firefox is not based on
> > >> Chromium. According to https://caniuse.com/#search=csp IE11 might be
> > >> problematic.
> > >>
> > >> Whatever we choose as default we should document how to switch it on
> and
> > >> off.
> > >> The user guide needs to be updated!
> > >>
> > > Yes, enabling a strict CSP will probably break all existing
> > > applications on upgrade. But the upgrade will do that anyway (I had to
> > > fix quite a few compilation errors to get my app starting again). We
> > > do have to document this in the migration guide. Switching to an
> > > unsafe CSP or disabling it entirely is just one line of code. That's a
> > > lot less work than fixing the compilation errors. I hope enabling CSP
> > > by default will make more people aware of this browser feature. At
> > > Topicus we intent to fix our applications to work with the strict CSP,
> > > probably not directly after migrating to 9, but Wicket 9 is a good
> > > push in this direction.
> > >
> > > It is true that support is lacking for some browsers. A browser that
> > > does not support CSP at all (like IE11) is not hindered by it either.
> > > It becomes more problematic when a browser does not support the
> > > directives used (like strict-dynamic). This might cause issues and we
> > > need to test that and change the CSP to make sure it works in those
> > > browsers as well. IMHO as a framework it is our job to set an example
> > > and show how we think this is done best. When a user thinks the gained
> > > security is not worth the pain, he/she can disable it and hope for the
> > > best.
> > >
> > > Best regards,
> > > Emond
> > >
> > >>> I've already started the work on the 'csp' branch. On this branch,
> > >>> I've also migrated all but the servlet API to the jakarta namespace.
> > >>>
> > >>> Best regards,
> > >>> Emond
> > >>>
> > >>> On Sun, Jan 12, 2020 at 8:18 PM Emond Papegaaij
> > >>> <emond.papega...@gmail.com> wrote:
> > >>>> Searching through our Jira, I've found WICKET-6687, filed by Andrew.
> > >>>> He already pinpointed several places that break with a strict CSP
> > >>>> enabled. I'm going to convert that bug into a task (we do not have
> > >>>> epic) and create new bugs for all issues in that ticket. That should
> > >>>> make it easier to track progress.
> > >>>>
> > >>>> Best regards,
> > >>>> Emond
> > >>>>
> > >>>> On Sat, Jan 11, 2020 at 10:31 PM Emond Papegaaij
> > >>>> <emond.papega...@gmail.com> wrote:
> > >>>>> Hi all,
> > >>>>>
> > >>>>> For the past few days I've been experimenting with the new CSP
> > >>>>> features in Wicket 9. I really want to thank Andrew, Sven and
> Martin
> > >>>>> for the great work you guys did in making this possible. I'm
> getting
> > >>>>> very close to running my application with a very tight and secure
> CSP.
> > >>>>> Unfortunately, some parts of Wicket still use inline styling and
> > >>>>> scripting. So far I've found the following two issues:
> > >>>>>
> > >>>>> * hidden components with setOutputMarkupPlaceholderTag(true) have
> > >>> display:none
> > >>>>> * Forms render inline styling and javascript in some cases to
> improve
> > >>>>> submit handling
> > >>>>>
> > >>>>> I think we should try to fix these before Wicket 9 is released. I
> will
> > >>>>> continue to debug our application to see if there are more places.
> > >>>>>
> > >>>>> At Topicus we wrote a IRequestCycleListener that applies the CSP
> > >>>>> automatically to every request via HTTP headers. The API makes it
> easy
> > >>>>> to configure the CSP. I've added support for the nonce as well. It
> > >>>>> uses a new nonce for every request, which should be more secure
> than a
> > >>>>> nonce bound to a session. I'll discuss with my employee next week
> if
> > >>>>> we can donate this code to Wicket.
> > >>>>>
> > >>>>> Best regards,
> > >>>>> Emond
>
>
>
> --
> Become a Wicket expert, learn from the best: http://wicketinaction.com
>


-- 
Andrea Del Bene.
Apache Wicket committer.

Reply via email to