iProject Requirements and Explanations

In order to run the iProject client, your browser must have certain capabilities. This document enumerates these requirements and explains their security implications.

Specifically, your browser must:

  1. Support HTML frames
  2. Support JavaScript
  3. Support true Java (usually by installing a compatible Java Plug-In)
  4. Allow applets to run
  5. Allow privileged applets to run
  6. Be able to connect to the iProject server
See also a list of some un/suitable browsers.


Why does the iProject require browser frames?

Well, it doesn't really require frames in any fundamental way. They're only used to organize the tests conducted when starting the iProject.

What does this involve?

All the browsers we have been able to obtain do support frames, and in fact do not provide any way of disabling them. In particular, any browser that supports the HTML 4 standard should support frames. Therefore, no special steps should be required to support frames.

Why is this safe?

Some versions of Microsoft Internet Explorer had one or more cross-domain security vulnerabilities, which roughly speaking allowed one frame to access data from another, even if they were loaded from different servers. These have been patched, or can be blocked by prohibiting navigating subframes across domains:
  1. Tools...Internet Options
  2. Security...Custom Level
  3. Miscellaneous: Disable (or Prompt)
    • Access data sources across domains
    • Navigate sub-frames across different domains
The iProject does not place any data in frames, and does not require navigating subframes across domains. Therefore, the iProject is not subject to these vulnerabilities, and moreover the cross-domain features can be disabled without affecting the iProject.
We are not aware of any other security problems associated with frames.


Why does the iProject require JavaScript?

The iProject uses JavaScript (more recently standardized as ECMA-Script) in several ways:
  1. To run the browser tests conducted when starting the iProject.
  2. To automate launching the iProject on browsers requiring specific HTML syntax.
  3. To allow connection parameters to be stored and maintained in one place, separately from more changeable HTML documents.
None of these is absolutely critical, and we provide
alternate launch links that do not use JavaScript.

What does this involve?

JavaScript is often enabled by default, or you may have to enable it manually.

Why is this safe?

Scripting languages are a source of legitimate security anxiety, especially when using Microsoft Internet Explorer or Outlook/Express.

In particular, one class of security problems that can affect Internet Explorer as well as many Web servers is called cross-site scripting, which generally involves unchecked client input. Although a poorly configured Web server may still be vulnerable to this type of problem, the iProject's pages and scripts do not introduce any additional vulnerability, because they do not accept any client input.

The risks of scripting can be addressed in several ways, including:

For your convenience, you may view all of the iProject's JavaScript source.


Why does the iProject require the Java Plug-In?

The Java Plug-In provides the standardized libraries (in particular, user interface and network libraries) and secure "virtual machine" that the iProject client needs to run on multiple platforms.

What does this involve?

The first time you run the iProject client you will probably need to install the Java Plug-In on your machine. This only needs to be done once.

Why is this safe?

Sun's Java Plug-In has had very few security issues over its lifetime, and has no outstanding ones in its recent versions (including those mirrored here). No widespread exploit of the Java Plug-In has ever been made; the only one we're even aware of was a proof-of-concept in 1996 called "Brown Orifice," which never caused any damage.


Why does the iProject require applets?

The iProject client runs as an applet to ensure that users always have an up-to-date version, and to take advantage of the Java Plug-In's code caching and signature verification abilities.

What does this involve?

Usually no setup will be required after the Java Plug-In is installed. If you are using Netscape or Mozilla, you may have to enable applets manually.

Why is this safe?

Applets run in a very restrictive environment; normally, they can't do anything except paint to the screen a bit. In particular, applets can't read or write files on your local computer, or connect to any host except the one they came from.

Internet Explorer also gives you options to prompt before running any applet or to run only signed applets, and we recommend that you select one of those options.


Why does the iProject require privileges?

One of the iProject's primary functions is the exchange of data, in particular, files. Because Java's strict security prevents normal applets from accessing files on the local computer, any applet like the iProject client that needs to do so has to run in a special "trusted" mode.

What does this involve?

The Java Plug-In detects when an applet requires privileges, and asks you whether to allow the applet to run. No system configuration or settings should need to be modified.

Why is this safe?

Applet code can be signed by its provider, allowing you to verify that it actually has been approved by the provider, that the provider is who it claims to be, and that the code has not been tampered with. When asking whether to run a privileged applet, the Java Plug-In will display the credentials of signed code.

You should never run a privileged applet unless it is signed by an organization you know and would expect to sign it!

The iProject client should be signed either by its host company or by iReservoir.com, Inc.


Why does the iProject require a connection to the iProject server?

In order to store and retrieve data on the iProject server, the iProject client must be able to connect to the server. For network-enabled applications like the iProject, this involves making a TCP/IP socket connection over the fabled, cussed, elusive open port.

What does this involve?

Depending on the server configuration, this may require the ability to establish a connection on a non-standard port. This will likely be fine if the iProject client and server reside on the same LAN. When connecting to the iProject over the Internet, however, allowing such connections is almost certainly in the realm of the system administrator.

Why is this safe?

This is safe because the exception required is narrow: And because data is handled with care: