<?php
/*
* script for map access management
* License: GNU
* Copyright 2016 WebAppFirewall RomanShneer <romanshneer@gmail.com>
*/
session_start();
#require_once "libs/config.inc.php";
require_once "libs/db.inc.php";
require_once "libs/waf_report.class.php";
$WR=new WafReport;
$get=$_GET;
if(!isset($get['sid']))$get['sid']='';
if(!isset($get['approved']))$get['approved']=-1;
if(!isset($get['bf']))$get['bf']=-1;
if(!isset($get['use_type']))$get['use_type']=-1;
if(!isset($get['vars']))$get['vars']=-1;
if(!isset($get['vars_approved']))$get['vars_approved']=-1;
$segments=$WR->get_segments_tree2($get);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php require_once "include/head.php"; ?>
<script src="assets/js/musclesoft-jquery-connections/jquery.connections.js"></script>
<?php if($is_mobile):?>
<script src="assets/js/waf_map_mobile.js"></script>
<?php else: ?>
<script src="assets/js/waf_map.js"></script>
<?php endif;?>
<style>
.body_pencil{
//cursor: url("assets/imgs/pencil_cursor.png"), cell;
cursor: url("assets/imgs/green.png"), cell;
}
.body_eraser{
cursor: url("assets/imgs/red.png"), crosshair;
}
.body_hand{
cursor:pointer;
}
</style>
</head>
<body>
<?php include_once 'include/header.php';?>
<?php if($segments):?>
<div class="tree_house">
<div id="seg_tree">
<?php echo $WR->draw_segments_tree($segments,1); ?>
</div>
</div>
<?php endif;?>
<div class='filter_box'>
<form action="map.php" method="GET">
<strong>Show Segments only:</strong>
<fieldset class='filter_fieldset'>
<div class='filter_fieldset_header'>Status</div>
<select name="approved">
<?php foreach(array(-1=>'all',0=>'new',1=>'approved') as $k=>$v):?>
<option value="<?php echo $k;?>" <?php if($get['approved']==$k):?> selected<?php endif;?>><?php echo $v;?></option>
<?php endforeach;?>
</select>
</fieldset>
<fieldset class='filter_fieldset'>
<div class='filter_fieldset_header'>BF</div>
<select name="bf">
<?php foreach(array(-1=>'all',0=>'Off',1=>'On') as $k=>$v):?>
<option value="<?php echo $k;?>" <?php if($get['bf']==$k):?> selected<?php endif;?>><?php echo $v;?></option>
<?php endforeach;?>
</select>
</fieldset>
<fieldset class='filter_fieldset'>
<div class='filter_fieldset_header'>Rule Usage:</div>
<select name="use_type">
<?php foreach(array(-1=>'all',0=>'Static',1=>'Rule') as $k=>$v):?>
<option value="<?php echo $k;?>" <?php if($get['use_type']==$k):?> selected<?php endif;?>><?php echo $v;?></option>
<?php endforeach;?>
</select>
</fieldset>
<fieldset class='filter_fieldset'>
<div class='filter_fieldset_header'>Contains Vars:</div>
<select name="vars">
<?php foreach(array(-1=>'all',0=>'Not contains',1=>'Contains Any',10=>'Contains New',11=>'Contains Approved') as $k=>$v):?>
<option value="<?php echo $k;?>" <?php if($get['vars']==$k):?> selected<?php endif;?>><?php echo $v;?></option>
<?php endforeach;?>
</select>
</fieldset>
<fieldset class='filter_fieldset'>
<input type="text" placeholder="Segment ID" id="filter_segment_id" name="sid" style="width:80px;" value="<?php echo $get['sid'];?>">
</fieldset>
<input type="submit" value="Go" class="green_btn">
</form>
<img src='assets/imgs/question.png' width="20" id="filter_help" title="Help">
<div class="bottom_tools">
<a href="javascript://" id="edit_global_vars" class="green_btn" title="Click For Edit Global Variables">Global Vars</a><a id="export_helper"></a>
<a href="javascript://" id="export" class="green_btn">Export Map</a><a id="export_helper"></a>
<a href="javascript://" id="import" class="green_btn">Import Map</a><input id="import-file" type="file" style="display:none"/>
<a href="javascript://" id="truncate" title="Click Truncate ALL segment and variables - Be carefull" class="red_btn">Erase Map</a>
</div>
</div>
<!--Legends BOF-->
<div class='legend_box'>
<table width="100%" border="0">
<tr>
<td>
<h5>Legends:</h5>
<font color="dimgray">Item Approved</font><br>
<font color="red">Item Uknown</font><br>
<font color="lime">Selected Item for Edit</font><br>
<h5>Segments view:</h5>
<br>static_segment{<font color="lime">5</font>,<font color="red">BF</font>}
-
{<font color="lime">Number nea segments</font>} - show count of variables connected to the segment.
<font color="red">BF</font> - BruteForce mode enabled
<br><br>Auto Rule: (<font color="lime">l</font><font color="red">d</font><font color="blue">-_</font>)[<font color="maroon">20</font>]<font color="lightblue">.php</font>
(<font color="lime">l</font> - is contains letters "a-z",
<font color="red">d</font> - contains numbers "0-9",
<font color="blue">-_</font> - contains characters that not numbers and not letters
)
<br>[<font color="maroon">20</font>] - size of "contains" part
<br><font color="lightblue">.php</font> - static part after rule
</td>
<td>
<h5>Usage:</h5>
Mouse Right-Click for rootate tool:<br>
<table width="100%" style="color:dimgray">
<tr>
<td><img width="20" src="assets/imgs/green.png"></td>
<td>Select</td><td>allows select elements by mouseover</td>
</tr>
<tr>
<td><img width="20" src="assets/imgs/red.png"></td>
<td>Unselect</td>
<td>allows unselect elements by mouseover</td>
</tr>
</table>
</td>
<td><h5>Mouse Events:</h5>
<b>Mouseover</b> - show segment info. If Select\Unselect tools enabled - also mark items for edit.<br>
<b>DoubleClick</b> on segment - if contains variables - Open Variables List, another open Segments Menu<br>
<b>DoubleClick</b> on empty space - open Segments\Variables Form with selected items.<br>
<b>Drag'n'Drop</b> segment - possible change position of element<br>
<b>RightClick</b> switch tools circulary.
</td>
<td><a href="javascript://" class="x" id="close_legends"></a><!--img src="assets/imgs/x.png" class="x" id="close_legends"--></td>
</tr>
</table>
</div>
<!--Legends EOF-->
<!--SEGMENT MULTY MENU BOF-->
<div id="segment_menu">
<h5>Edit rule for selected segments<a href="javascript://" id="close_segment_form" class="x"></a></h5>
<div>
<label class="ccc">Use:</label>
<label for="use0">Original Path</label>
<input type="radio" name="use" value="0" id="use0" class="use">
<label for="use1">Auto Type</label>
<input type="radio" name="use" value="1" id="use1" class="use">
</div>
<input type="hidden" id="segment_menu_ids"><hr>
<div class="value_options"></div>
<div class='type_options'>
<label class="ccc">Size:</label>
<input type="text" name="size" class="size" placeholder="unlimited" size="3">
<label class="ccc">Contains:</label>
<input type="checkbox" name="l" class="contains" id="contains_l"><label for="contains_l">Letters</label>
<input type="checkbox" name="d" class="contains" id="contains_d"><label for="contains_d">Digital</label>
<input type="text" name="s" class="contains" id="contains_s" placeholder="Input special chars" size="17">
</div>
<div class="type_options">
<label class="ccc">Have Static part:</label>
<input type="text" id="static_part_before" placeholder="Before">
<input type="text" id="static_part_after" placeholder="After">
</div>
<hr>
<div>
<input type='checkbox' name='approved' id='approved' checked="checked">
<label for="approved">Approved</label>
<input type='checkbox' name='bf' id='bf'>
<label for="bf">BF</label>
<input type="button" value="save" id="save_codes" class="green_btn">
<input type="button" value="delete" id="delete_segments" class="red_btn">
</div>
</div>
<!--SEGMENT MULTY MENU EOF-->
<!--VARS SINGLE MENU BOF-->
<div id="vars_menu">
<h5>Select variable for edit rule<a href="javascript://" id="vars_menu_close" class="x"></a></h5>
<div class="var_request_box"><ul id="requests"></ul></div>
</div>
<div class="vars_form">
<h5>Edit rule for selected variables<a href="javascript://" id="vars_close_form" class="x"></a></h5>
<input type="hidden" id="vars_menu_ids">
<div class="vars_value_options"></div>
<div class='vars_type_options'>
<hr>
<div class="vars_row3">
<span class="var_contains_box">
<label class="ccc">Size:</label>
<input type="text" name="vars_size" class="vars_size" placeholder="unlimited" size="3">
<label class="ccc">Contains:</label>
<input type="checkbox" name="vars_l" class="vars_contains" id="vars_contains_l">
<label for="vars_contains_l">Letters</label>
<input type="checkbox" name="vars_d" class="vars_contains" id="vars_contains_d">
<label for="vars_contains_d">Digital</label>
<input type="text" name="vars_s" class="vars_contains" id="vars_contains_s" placeholder="Input special chars" size="10">
</span>
<span style="float:right;">
<label class="ccc" for="exception">Exception</label>
<input type="checkbox" name="exception" id="exception">
</span>
</div>
</div>
<div>
<div>
<hr>
<label for="vars_approved">Approved</label>
<input type='checkbox' name='vars_approved' id='vars_approved' checked="checked">
<label for="vars_global">Make Global</label>
<input type='checkbox' name='vars_global' id='vars_global'>
<input type="button" value="save" id="vars_save_code" class="green_btn">
<input type="button" value="delete" id="vars_delete_code" class="red_btn">
</div>
</div>
</div>
<div id="loader"><img src="assets/imgs/loader.gif"></div>
<!--VARS SINGLE MENU EOF-->
<script>
$(document).ready(function (){
//start interface
<?php if($WR->isEditor()):?>
WaF.init();
<?php else:?>
WaF.draw_connect_lines();
<?php endif;?>
});
</script>
</body>
</html>
|