Abstract
The introduction of Java applets has taken the World Wide Web by storm.
Information servers can customize the presentation of their content with
server-supplied code which executes inside the Web browswer. We examine
the Java language and both the HotJava and Netscape browsers which support
it, and find a significant number of flaws which compromise their security.
These flaws arise for several reasons, including implementation errors,
unintended interactions between browser features, differences between the
Java language and bytecode semantics, and weaknesses in the design of the
language and the bytecode format. On a deeper level, these flaws arise
because of weaknesses in the design methodology used in creating Java and
the browswers. In addition to the flaws, we discuss the underlying tension
between the openness desired by Web application writers and the security
needs of their users, and we suggest how both might be accommodated.