Changing the value of referrer

user1942505 picture user1942505 · Jan 4, 2013 · Viewed 24.2k times · Source

Possible Duplicate:
How to manually set REFERER header in Javascript?

How to change the value of document.referrer?

I tried this

<body>
<center><a href="test.php" target="_self">self</a></center>
<script type="text/javascript">
    alert( document.referrer);
    document.referrer="test";
    alert( document.referrer);
</script>
</body>

It is not working, any ideas?

Answer

SeinopSys picture SeinopSys · Jan 4, 2013

You can't modify the referrer directly, but you can use history.pushState() / history.replaceState() to push a new URL into the browser history (provided the URL you want to push has the same domain), then when you navigate away, the new URL will be the referrer.

Please note that manipulating the history using pushState adds a new history entry, but the page being viewed stays the same, and the user will have to press their browser's "Back" button twice to go back one actual page.

However, if you use replaceState, coming back from the page you want to hide the referrer from will go to the newly set URL, so make sure that whatever you replace it with somehow redirects the user back to the original page instead of sending them to a 404 or a completely different page.