Is it possible to remove the referrer in PHP before redirected?

11,433

Solution 1

If your redirect is an HTTP redirect then, no, you have no control over that.

Nor, frankly, should you. It's the browser's business to form the REFERER value, not yours.

Solution 2

You can actually do this in practice if you're running HTTPS on your webserver. You need to force the connection to go via HTTPS as an intermediary so the sequence of redirects would then be:

  1. http://mywebsite.com/url.php?u=http://www.stackoverflow.com ->
  2. https://mywebsite.com/url.php?u=http://www.stackoverflow.com ->
  3. http://stackoverflow.com

Most browsers don't send a referrer in cases like that to avoid leaking information that was private and encrypted over insecure channels to unrelated third parties.


Newer browsers now support this properly anyway, with a meta tag. You can add:

<meta name="referrer" content="never">

Generally though you should be setting this option on all your pages anyway, so both client and server side redirection would be fine.

Solution 3

The referer comes from the browser, which you already indicated you understand.

This would be simple enough for you to write a quick test.

Theoretically if you are redirecting to a script that then redirects again, the referer is going to be the redirector script and not the original script.

If you're asking if your script can redirect "invisibly" -- then no, that is outside of the script's control.

Share:
11,433
MacMac
Author by

MacMac

:-)

Updated on June 09, 2022

Comments

  • MacMac
    MacMac about 2 years

    But since the browser is the only thing that manages the referrer, however I was thinking about a script that removes the referrer before they are redirected to the link they want to go to.

    For example,

    http://mywebsite.com/url.php?u=http://www.stackoverflow.com

    Where url.php could remove the referrer and then redirect. Is it possible to do this in any way?

  • askmish
    askmish over 11 years
    Add some more description of the solution. Please refer: stackoverflow.com/questions/how-to-answer
  • Sire
    Sire about 9 years
    This is false. There are multiple ways of solving this. Answer by Flexo is one way.
  • Dhrumil Bhankhar
    Dhrumil Bhankhar over 2 years
    This worked like a charm! Thank you.