I'm trying to compile a complete list of all restrictions placed on unsigned Java applets (defined as things a normal Java application can do, but an unsigned Java applet cannot).
This is the list I've compiled so far:
An unsigned Java applet ...
SocketImplFactory
, URLStreamHandlerFactory
, or ContentHandlerFactory
.SecurityManager
object.load()
or loadLibrary()
methods of Runtime
or System
.Runtime.exec()
methods.java.*
, sun.*
and netscape.*
.sun.*
package.System.exit()
or Runtime.exit()
.java.lang.Class
reflection methods to obtain information about nonpublic members of a class, unless the class was loaded from the same host as the untrusted code.Question: Are there any restrictions missing? If so, please clearly state what restriction you believe is missing from the list.
An applet cannot load libraries or define native methods. An applet cannot ordinarily read or write files on the execution host. An applet cannot read certain system properties. An applet cannot make network connections except to the host that it came from.
Applets have many restrictions over the areas of security because they are obtained from remote machines and can harm client-side machines.
There is a security model for Java applets that has two rules: Applets may communicate only with the Web server from which they were downloaded. Applets may not have access to local resources, such as files, the clipboard and printer ports, on a workstation to which they are downloaded.
See this from Sun's tutorial: What Applets Can and Cannot Do.
Also you cannot register an UncaughtExceptionHandler
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With