showPathAndSearch(): put HTML escaping right
authorDenis Ovsienko <denis@ovsienko.info>
Tue, 6 Dec 2016 12:03:44 +0000 (12:03 +0000)
committerDenis Ovsienko <denis@ovsienko.info>
Tue, 6 Dec 2016 12:06:30 +0000 (12:06 +0000)
Instead of calling htmlspecialchars() on the data from $_REQUEST, which
has already been escaped, use the normal means to access and escape the
request data. This fixes &quot; and similar entities in the search
INPUT. Fixup a helper function to use $sic too while at it.

wwwroot/inc/interface.php

index 4421eecc3ae6b003fd1bf941bf6697a9bd41c9e4..2b0382d84849b202d9af9e5859594ea33943e007 100644 (file)
@@ -5242,13 +5242,14 @@ function showPathAndSearch ($pageno, $tabno)
        {
                $self = __FUNCTION__;
                global $page;
        {
                $self = __FUNCTION__;
                global $page;
+               global $sic;
                $path = array();
                $page_name = preg_replace ('/:.*/', '', $targetno);
                // Recursion breaks at first parentless page.
                if ($page_name == 'ipaddress')
                {
                        // case ipaddress is a universal v4/v6 page, it has two parents and requires special handling
                $path = array();
                $page_name = preg_replace ('/:.*/', '', $targetno);
                // Recursion breaks at first parentless page.
                if ($page_name == 'ipaddress')
                {
                        // case ipaddress is a universal v4/v6 page, it has two parents and requires special handling
-                       $ip_bin = ip_parse ($_REQUEST['ip']);
+                       $ip_bin = ip_parse ($sic['ip']);
                        $parent = (strlen ($ip_bin) == 16 ? 'ipv6net' : 'ipv4net');
                        $path = $self ($parent);
                        $path[] = $targetno;
                        $parent = (strlen ($ip_bin) == 16 ? 'ipv6net' : 'ipv4net');
                        $path = $self ($parent);
                        $path[] = $targetno;
@@ -5263,6 +5264,7 @@ function showPathAndSearch ($pageno, $tabno)
                return $path;
        }
        global $page, $tab;
                return $path;
        }
        global $page, $tab;
+       global $sic;
        // Path.
        $path = getPath ($pageno);
        $items = array();
        // Path.
        $path = getPath ($pageno);
        $items = array();
@@ -5334,7 +5336,9 @@ function showPathAndSearch ($pageno, $tabno)
        echo "<input type=hidden name=last_page value=$pageno>";
        echo "<input type=hidden name=last_tab value=$tabno>";
        // This input will be the first, if we don't add ports or addresses.
        echo "<input type=hidden name=last_page value=$pageno>";
        echo "<input type=hidden name=last_tab value=$tabno>";
        // This input will be the first, if we don't add ports or addresses.
-       echo "<label>Search:<input type=text name=q size=20 value='".(isset ($_REQUEST['q']) ? htmlspecialchars ($_REQUEST['q'], ENT_QUOTES) : '')."'></label></form></div>";
+       echo '<label>Search:<input type=text name=q size=20 value="';
+       echo array_key_exists ('q', $sic) ? stringForTextInputValue ($sic['q']) : '';
+       echo '"></label></form></div>';
 
        // Path (breadcrumbs)
        echo implode(' : ', array_reverse ($items));
 
        // Path (breadcrumbs)
        echo implode(' : ', array_reverse ($items));