cvs: php-gtk-web /manual add-note.php
[email protected] ("Steph Fox") Tue, 11 Jul 2006 07:56:28 -0000
| Newsgroups | php.gtk.webmaster |
|---|---|
| Message-ID | <cvssfox1152604588@cvsserver> |
sfox Tue Jul 11 07:56:28 2006 UTC
Modified files:
/php-gtk-web/manual add-note.php
Log:
clean up http_referer usage
http://cvs.php.net/viewvc.cgi/php-gtk-web/manual/add-note.php?r1=1.23&r2=1.24&diff_format=u
Index: php-gtk-web/manual/add-note.php
diff -u php-gtk-web/manual/add-note.php:1.23 php-gtk-web/manual/add-note.php:1.24
--- php-gtk-web/manual/add-note.php:1.23 Sun Jul 9 15:48:59 2006
+++ php-gtk-web/manual/add-note.php Tue Jul 11 07:56:28 2006
@@ -22,13 +22,26 @@
</SCRIPT>
<?php
-$referrer = null;
-
-$referrer = isset($_POST['referer']) ? trim($_POST['referer']) : $_SERVER['HTTP_REFERER'];
+$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
+$referrer = isset($_POST['referer']) ? trim($_POST['referer']) : $referer;
if (!$referrer) {
- $referrer = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
- header("Location: $referrer");
+ if (isset($_GET['ref'])) {
+ $referrer = $_GET['ref'];
+ } else {
+ /* no idea how this person got here */
+ header("Location: /");
+ exit;
+ }
+}
+
+/* better check it, eh? */
+$referrer = htmlentities(strip_tags($referrer));
+$real = $_SERVER['DOCUMENT_ROOT'];
+$real .= str_replace('http://'.$_SERVER['HTTP_HOST'], '', $referrer);
+
+if (!file_exists($real)) {
+ header("Location: /");
exit;
}