aboutsummaryrefslogtreecommitdiffstats
path: root/config/snort/snort_select_alias.php
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2014-06-19 15:04:39 -0300
committerRenato Botelho <garga@FreeBSD.org>2014-06-19 15:04:39 -0300
commit6048cbcf1b2e2029250f9eb5fe166627c89398fd (patch)
tree8e966bfb0d9737aa29366aed559f87ae242171c8 /config/snort/snort_select_alias.php
parent2092dc4865e008f703353be65f23e7389f527ab4 (diff)
downloadpfsense-packages-6048cbcf1b2e2029250f9eb5fe166627c89398fd.tar.gz
pfsense-packages-6048cbcf1b2e2029250f9eb5fe166627c89398fd.tar.bz2
pfsense-packages-6048cbcf1b2e2029250f9eb5fe166627c89398fd.zip
Improve a bit user input parameters, also make sure referer starts with / to avoid sending users to external sites
Diffstat (limited to 'config/snort/snort_select_alias.php')
-rw-r--r--config/snort/snort_select_alias.php18
1 files changed, 10 insertions, 8 deletions
diff --git a/config/snort/snort_select_alias.php b/config/snort/snort_select_alias.php
index c632b388..e13d0cb4 100644
--- a/config/snort/snort_select_alias.php
+++ b/config/snort/snort_select_alias.php
@@ -47,29 +47,31 @@ else
// Retrieve any passed QUERY STRING or POST variables
if (isset($_POST['type']))
- $type = $_POST['type'];
+ $type = htmlspecialchars($_POST['type']);
elseif (isset($_GET['type']))
$type = htmlspecialchars($_GET['type']);
if (isset($_POST['varname']))
- $varname = $_POST['varname'];
+ $varname = htmlspecialchars($_POST['varname']);
elseif (isset($_GET['varname']))
$varname = htmlspecialchars($_GET['varname']);
if (isset($_POST['multi_ip']))
- $multi_ip = $_POST['multi_ip'];
+ $multi_ip = htmlspecialchars($_POST['multi_ip']);
elseif (isset($_GET['multi_ip']))
$multi_ip = htmlspecialchars($_GET['multi_ip']);
-if (isset($_POST['returl']))
+if (isset($_POST['returl'])) && substr($_POST['returl'], 0, 1) == '/')
$referrer = urldecode($_POST['returl']);
-elseif (isset($_GET['returl']))
+elseif (isset($_GET['returl'])) && substr($_GET['returl'], 0, 1) == '/')
$referrer = urldecode($_GET['returl']);
+else
+ $referrer = $_SERVER['HTTP_REFERER'];
// Make sure we have a valid VARIABLE name
// and ALIAS TYPE, or else bail out.
if (is_null($type) || is_null($varname)) {
- header("Location: http://{$referrer}?{$querystr}");
+ header("Location: {$referrer}?{$querystr}");
exit;
}
@@ -132,8 +134,8 @@ include("head.inc");
<input type="hidden" name="varname" value="<?=$varname;?>"/>
<input type="hidden" name="type" value="<?=$type;?>"/>
<input type="hidden" name="multi_ip" value="<?=$multi_ip;?>"/>
-<input type="hidden" name="returl" value="<?=$referrer;?>"/>
-<input type="hidden" name="org_querystr" value="<?=$querystr;?>"/>
+<input type="hidden" name="returl" value="<?=htmlspecialchars($referrer);?>"/>
+<input type="hidden" name="org_querystr" value="<?=htmlspecialchars($querystr);?>"/>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<div id="boxarea">
<table width="100%" border="0" cellpadding="0" cellspacing="0">