Esempio n. 1
0
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
* MA  02110-1301  USA
*
*
* On Debian GNU/Linux systems, the complete text of the GNU General
* Public License can be found in `/usr/share/common-licenses/GPL-2'.
*
* Otherwise you can read it here: http://www.gnu.org/licenses/gpl-2.0.txt
*
*/
require_once 'av_init.php';
Session::logcheck('environment-menu', 'PolicyHosts');
//CPE Types
$_cpe_types = array('os' => 'o', 'hardware' => 'h', 'software' => 'a');
$_cpe = GET('q');
$_cpe_type = GET('cpe_type');
ossim_valid($_cpe, OSS_NULLABLE, OSS_ALPHA, OSS_PUNC_EXT, 'illegal:' . _('CPE'));
ossim_valid($_cpe_type, 'os | software | hardware', 'illegal:' . _('CPE Type'));
if (ossim_error() || !array_key_exists($_cpe_type, $_cpe_types)) {
    exit;
}
$db = new Ossim_db();
$conn = $db->connect();
$_cpe = escape_sql($_cpe, $conn);
$filters = array('where' => "`cpe` LIKE 'cpe:/" . $_cpe_types[$_cpe_type] . "%' AND `line` LIKE '%{$_cpe}%'", 'limit' => 20);
$software = new Software($conn, $filters);
$db->close();
foreach ($software->get_software() as $cpe_info) {
    echo $cpe_info['cpe'] . '###' . $cpe_info['line'] . "\n";
}
/* End of file search_cpe.php */
function software_list($conn, $page, $search, $search_all)
{
    $filters = array();
    $filters['limit'] = get_query_limits($page);
    if ($search != '') {
        $search = utf8_decode($search);
        $search = escape_sql($search, $conn);
        if ($search_all) {
            $filters['where'] = " software_cpe.line LIKE '%{$search}%' ";
        } else {
            $s_regexp = preg_replace('/\\s+/', '[_:]+', $search);
            $filters['where'] = " hs.cpe REGEXP '.*{$s_regexp}.*' ";
        }
    }
    try {
        if ($search_all) {
            $_software = new Software($conn, $filters, TRUE);
            $softwares = $_software->get_software();
            $total = $_software->get_total();
        } else {
            list($softwares, $total) = Asset_host_software::get_all($conn, $filters, TRUE);
        }
    } catch (Exception $e) {
        $return['error'] = TRUE;
        $return['msg'] = $e->getMessage();
        return $return;
    }
    if ($total > 0) {
        $selected = get_selected_values(9);
    }
    $list = array();
    //Going through the list to format the elements properly:
    foreach ($softwares as $cpe => $software) {
        $_chk = $selected[$cpe] != '' ? TRUE : FALSE;
        $name = empty($software['line']) ? $cpe : $software['line'];
        $_soft = array('id' => $cpe, 'name' => $name, 'checked' => $_chk);
        $list[$cpe] = $_soft;
    }
    $data['total'] = intval($total);
    $data['list'] = $list;
    $return['error'] = FALSE;
    $return['data'] = $data;
    return $return;
}