There are Firefox plugins that exist to allow individual users to do some referer spoofing. However, while some of them do get fairly complicated (supermegaspoof.com), ALL of them are currently setup such that the fake-referer data comes from somewhere OTHER than the fusker site.
Having the end-user handle all the complexity isn't the best way.
Having one central server handle all the complexity isn't the best way.
The web handles complexity in a distributed fashion. It should be possible for EACH SITE that wishes to hotlink, to be able to individually specify what the referer should be, like so:
<a href="http://some.pornsite.com/deeplink.mpg" referer="http://some.pornsite.com/deeplink.html">link text</a> <img src="http://some.pornsite.com/deeplink.jpg" referer="http://some.pornsite.com/deeplink.html">
- detecting the script by adding referer=".." against something on their own site, and seeing if they detect a change, and if so, blacklisting that IP for a short time - therefore, we have to have a user-preference setting that specifies which domains are able to use it (and it'll have a drop-down similar to the ad-blocking or XPI-installing one) - making sure the user loads the text/html BEFORE they load the image/jpeg (something they have to do with videos anyway) http://www.trafficguardian.com/ http://www.antihotlinking.com/ http://www.axscripts.com/mod_antihotlink - though, it's not overly difficult to XMLHttpRequest the HTML (and throw it away) before causing the images to load - setting a session cookie with the FHG page, and requiring that the cookie be present before a .jpg can be loaded - if it's in the HTTP response header, then XMLHttpRequest will get around this. If it's in the HTML content (javascript), then you can still get around it by embedding it inside a nearly invisible frame. - the ultimate solution seems to be to frequently rotate the actual URL the content resides on, since webmasters only want to attract long-term links to the HTML (which can remain at the same place) but not the images (which will move constantly) - manually: http://bbs.adultwebmasterinfo.com/showthread.php?t=85278#post607472 - automatic: http://www.greenguyandjim.com/board/showthread.php?p=323803#post323803 - but then people will write AJAX code that loads the HTML, parses out the image URLs at that instant, and then displays them on their own
Trying to connect the DOM to the HTTP request seems like it'll take some digging. [... okay, a lot of digging] google for: {nsIDOMWindow http-on-modify-request} http://forums.mozillazine.org/viewtopic.php?p=2774976 getTabIdForHttpChannel() here http://code.google.com/p/fbug/source/browse/branches/firebug1.2/content/firebug/net.js?r=336 and getRequestElement() here http://code.google.com/p/fbug/source/browse/trunk/content/firebug/net.js?r=366 (WORST case, is it possible to have some extra bits of javascript code run that specifies the referer mapping?) http://forum.mozilla-russia.org/viewtopic.php?pid=234018#p234018 best I've seen so far nsIChannel nsIHttpChannel imgIDecoderObserver http://lxr.mozilla.org/seamonkey/source/modules/libpr0n/public/imgIDecoderObserver.idl imgIDecoder imgIRequest[nsIRequest] http://lxr.mozilla.org/seamonkey/source/modules/libpr0n/public/imgIRequest.idl imgIContainer http://lxr.mozilla.org/seamonkey/source/modules/libpr0n/public/imgIContainer.idl gfxIImageFrame http://lxr.mozilla.org/seamonkey/source/gfx/idl/gfxIImageFrame.idl nsIImageLoadingContent http://lxr.mozilla.org/seamonkey/source/content/base/public/nsIImageLoadingContent.idl nsHTMLImageElement[nsImageLoadingContent] nsIDOMHTMLImageElement nsIDOMNSHTMLImageElement http://lxr.mozilla.org/seamonkey/source/modules/libpr0n/src/ (despite the name, it's actually just the general-purpose Mozilla image decorder) imgRequest.cpp imgRequest::OnStartRequest imgIDecoderObserver -> imgRequest::OnStartRequest -> imgIContainer -> http://developer.mozilla.org/en/docs/Interfaces imgICache imgIContainer imgIContainerObserver imgIDecoder imgIDecoderObserver imgILoad imgILoader imgIRequest gfxIImageFrame nsIDOMHTMLImageElement nsIDOMNSHTMLImageElement nsIImageDocument nsIImageLoadingContent nsISelectionImageService