RefControl
RefControl is an extension for Firefox
that lets you control what gets sent as the HTTP
Referer
on a per-site basis.
This can be useful in a number of situations:
- Privacy - Perhaps you think webmasters don't have any business knowing where you found the link to their site. You can configure RefControl to not send the referrer to any site except for ones you explicitly list.
- Broken sites - Some sites perform misguided referrer checks in the name of "security". These checks don't add any real security since the referrer is easily faked and can often cause problems when the browser's behavior changes. You can configure RefControl to send these sites whatever they are expecting and work around this kind of problem.
- Fun - Send humorous things, secure in the knowledge that they are being written into the server's log file for the amusement of anyone who might later discover them there. Ok, maybe that's not much fun, but RefControl will let you do it anyway.
Get RefControl v0.8.10 (30K).
What's new in v0.8.10:
- Added the following locales via BabelZilla:
- ca-AD Locale - el_libre
- fi-FI Locale - kenmooda
- zh-CN Locale - web123lai
Screenshot:


Instructions:
You create a list of sites, and the referrer that should be sent for each site.
To adjust settings for a single site, use the name of that site in the list
(for instance www.example.com). Alternatively, using just example.com
(without the www)
in the site list will apply to *.example.com.
More specific items in the list take
precedence, so if you have example.com and www.example.com in the
list, the example.com action will apply to every *.example.com
site except for www.example.com.
For the referrer, the following options are available:
- Normal - send the referrer as it would normally be sent without interference from RefControl.
- Block - send no referrer to this site.
- Forge - send the root of the site as the referrer. In the above screenshot, all pages from www.example.net will use http://www.example.net/ as the referrer.
- Custom - type in any string and RefControl will use that as the referrer. You can use variables in this string (see below).
Additionally, you can specify the default behavior for any site not in the list. You can set
this to something other than Normal if you want to be more protective about your privacy.
Setting it to Block for 3rd Party requests only is a fairly good compromise between
privacy and not breaking sites.
If you change the default behavior and then want a site to get sent the actual referrer,
add it to the list and set it to Normal.
Variables:
If you have selected the Custom option, you can include a variable in the string
by writing a dollar sign followed by the name of the variable, like so: $VARIABLE.
The following variables are currently available:
| Variable name | Description |
|---|---|
| URL | the URL that is currently being requested |
| REF | the unmodified Referer |
You can also include just part of one of the above variables by following the name of the
variable by an underscore and the name of the part, like so: $VARIABLE_PART.
The following parts are available:
| Part name | Description |
|---|---|
| SCHEME | The scheme, which represents the protocol which is being used (http or https) |
| USERNAME | The HTTP username, which is rarely used |
| PASSWORD | The HTTP password |
| USERPASS | The username and password, separated by a colon. If the password is not present then this contains just the username. |
| HOST | The hostname of the web server |
| PORT | The port number of the web server, by default 80 for http and 443 for https |
| HOSTPORT | The hostname and port number, separated by a colon. If the port is not specified then this contains just the hostname. |
| PATH | Everything after the hostname and port (includes the leading slash) |
| PREPATH | Everything that comes before the path (SCHEME://HOSTPORT or SCHEME://USERPASS@HOSTPORT if a password is used) |
The Normal option is the same as a Custom of $REF.
The Forge option is the same as $URL_SCHEME://$URL_HOSTPORT/.
If you wish to act like Forge but instead send the entire URL as the Referer
instead of the root of the site, you can use $URL.
To include a literal $, use $$. If you need to follow a variable by alphanumeric characters
you can surround the variable name with curly braces. For instance, ${REF_SCHEME}x will
expand to httpx or httpsx. Just using $REF_SCHEMEx will not work because
that will attempt to expand a variable named REF_SCHEMEx which does not exist.
Testing:
There's a test page which will display the referrer
that was sent by your browser. You can use this to test your installation and settings.
If you want to see the referrer that Firefox sent for a page, you can enable the
status bar display. There are three options:
- None - Nothing will appear in the statusbar at all.
- Icon - There will be an icon in the statusbar. This icon will have an all black border if there is a Referer present or in grey/black otherwise. Hovering over this icon with the mouse will show the Referer.
- Referer - The Referer will be displayed directly in the status bar. The hover display will work with this option as well.
Contact: refcontrol <AT> stardrifter.org
Copyright © 2008 James Abbatiello
$LastChangedDate: 2008-02-02 14:06:44 -0500 (Sat, 02 Feb 2008) $