url.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * URL redirector to avoid leaking Referer with some sensitive information.
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. /**
  9. * Gets core libraries and defines some variables
  10. */
  11. define('PMA_MINIMUM_COMMON', true);
  12. require_once './libraries/common.inc.php';
  13. if (! PMA_isValid($_GET['url'])
  14. || ! preg_match('/^https?:\/\/[^\n\r]*$/', $_GET['url'])
  15. || ! PMA_isAllowedDomain($_GET['url'])
  16. ) {
  17. header('Location: ' . $cfg['PmaAbsoluteUri']);
  18. } else {
  19. // JavaScript redirection is necessary. Because if header() is used
  20. // then web browser sometimes does not change the HTTP_REFERER
  21. // field and so with old URL as Referer, token also goes to
  22. // external site.
  23. echo "<script type='text/javascript'>
  24. window.onload=function(){
  25. window.location='" . htmlspecialchars($_GET['url']) . "';
  26. }
  27. </script>";
  28. // Display redirecting msg on screen.
  29. printf(__('Taking you to %s.'), htmlspecialchars($_GET['url']));
  30. }
  31. die();
  32. ?>