JEP 183: HTTP Cross-Origin Resource Sharing
David M. Lloyd
david.lloyd at redhat.com
Thu Apr 11 15:33:13 PDT 2013
On 04/11/2013 04:23 PM, mark.reinhold at oracle.com wrote:
> Posted: http://openjdk.java.net/jeps/183
I have a few comments/random thoughts about this. It says:
> Security: Will need to be reviewed carefully since this feature does relax the network security model in two ways:
>
> No explicit network permission will be required for certain (simple) cross-origin HTTP requests, as defined by CORS.
>
> Permissions for other (non simple) requests will be delegated to the server hosting the target resource.
I think this makes a lot of assumptions about the running code and its
security environment (in particular it seems to target applets and JWS).
Generally speaking, I think that the model of relaxing client security
permissions based on a server resource is quite dangerous, in particular
outside of an applet/JWS environment. I think a different model should
be looked at that does not involve (effectively) granting HTTP
connection privileges based on the server (at least, not always), but
instead requires that the permissions already be granted; it would be
more secure to use a separate client context which tracks what resources
the server has granted access to, while still enforcing the full set of
client permissions at all times.
In this case it is the server that should be mistrusted, not the client,
since the server is the party which is potentially granting permissions.
If you grant an HTTP access permission to a server, you are implicitly
giving that server the ability to grant the running code any other HTTP
access permission they want.
One thought is that applets/JWS could adopt the Java EE 7
permissions.xml model. This would be a convenient mechanism to give an
application access to more than its original permission set, and it
would still be possible to authorize the additional permissions with the
user before the program is run.
Thanks for listening.
--
- DML
More information about the net-dev
mailing list