Systems and methods for controlling the ability of scripts to access objects
defined at the client. The client stores an access control data structure having
multiple entries. Each entry is associated with one or more objects for which access
is to be controlled. The entries include a source identifier field containing one
or more URLs and a permission identifier field containing data defining a permission.
When the client receives a script from a script source, such as a web site, the
client begins execution of the script until the script requests access to an object.
The client identifies a relevant entry of the access control data structure, which
is an entry that is associated with the requested object and lists the URL of the
script source in the source identifier field. The client applies the permission
defined by the permission identifier of the relevant entry to the request, thereby
granting or denying access to the script. Thus, the client permits selected remote
entities to exercise control over objects and, in turn, over components of the
client, while preventing unauthorized scripts from accessing the objects.