<?php 
/* 
 * script for settings management 
 * License: GNU 
 * Copyright 2016 WebAppFirewall RomanShneer <[email protected]> 
 */ 
session_start(); 
require_once "libs/db.inc.php"; 
require_once "libs/waf_report.class.php"; 
$WR=new WafReport; 
if(isset($_POST['save_settings'])&&($WR->isEditor())) 
{ 
  
  
 $WR->save_settings('waf_learn_status',isset($_POST['waf_learn_status'])?true:false); 
 $WR->save_settings('waf_learn_ip_only',isset($_POST['waf_learn_ip_only'])?true:false); 
 $WR->save_settings('waf_learn_ip',$_POST['waf_learn_ip']); 
 $WR->save_settings('waf_learn_ip_approve',isset($_POST['waf_learn_ip_approve'])?true:false); 
 $WR->save_settings('waf_guard_status',isset($_POST['waf_guard_status'])?true:false); 
 $WR->save_settings('waf_skip_ip',$_POST['waf_skip_ip']); 
 $WR->save_settings('url404',$_POST['url404']); 
 $WR->save_settings('webmaster_email',$_POST['webmaster_email']); 
 $WR->save_settings('waf_security_key',$_POST['waf_security_key']); 
 $WR->save_settings('waf_security_key2',$_POST['waf_security_key2']); 
 $WR->save_settings('waf_bf',$_POST['bf']); 
 $WR->save_settings('waf_bf_attempt',$_POST['bf_attempt']); 
 $WR->save_settings('waf_bf_bantime',$_POST['bf_bantime']); 
  
 $WR->reload_settings(); 
} 
 
?><!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"; ?> 
<style> 
.settings_tbl th{ 
    font-weight:bold; 
} 
.settings_tbl th h2{ 
    display: table-cell; 
    font-size:19px; 
    margin:0; 
    white-space:nowrap; 
    
} 
.settings_tbl th span{ 
    display: table-cell; 
    width:100%; 
    vertical-align: middle; 
} 
.settings_tbl th hr{ 
    color:black; 
} 
.settings_tbl th span hr{ 
    margin:3px 0 0 -1px; 
    padding:0; 
    color:black; 
} 
</style> 
</head> 
<body> 
<?php include_once 'include/header.php';?>     
<div> 
    <div class='status_window'> 
        <form action="" method="POST"> 
                <table class="settings_tbl"> 
                <tr><th colspan="2"><h2>W.A.F. Protection Status</h2><span><hr /></span></th></tr> 
                    <tr> 
                        <td align="center"> 
                             
                            <label for="waf_learn_status">Learn:</label> 
                            <input type="checkbox" name="waf_learn_status" id="waf_learn_status" <?php if($WR->waf_learn_status):?> checked="checked"<?php endif;?> <?php if($WR->isEditor()):?> readonly<?php endif;?>> 
                        </td> 
                        <td align="center">     
                            <label for="waf_guard_status">Guard:</label> 
                            <input type="checkbox" name="waf_guard_status" id="waf_guard_status" <?php if($WR->waf_guard_status):?> checked="checked"<?php endif;?> <?php if($WR->isEditor()):?> readonly<?php endif;?>> 
                        </td> 
                    </tr>    
                    <tr class="waf_learn_ip_only_tr" <?php if(!$WR->waf_learn_status):?> style="display:none"<?php endif;?>> 
                        <td> 
                            <label for="waf_learn_ip_only">Learn only from IPs:</label> 
                            <input type="checkbox" id="waf_learn_ip_only" name="waf_learn_ip_only" <?php if($WR->waf_learn_ip_only):?> checked="checked"<?php endif;?> <?php if($WR->isEditor()):?> readonly<?php endif;?>/> 
                        </td> 
                        <td>   
                            <div class="waf_learn_ip_approve_div" <?php if(!$WR->waf_learn_ip_only):?> style="display:none"<?php endif;?>> 
                            <label for="waf_learn_ip_approve">Approve Immediately</label>   
                            <input type="checkbox" name="waf_learn_ip_approve" id="waf_learn_ip_approve" <?php if($WR->waf_learn_ip_approve):?> checked="checked"<?php endif;?> <?php if($WR->isEditor()):?> readonly<?php endif;?>/>  
                            </div> 
                        </td> 
                    </tr> 
                    <tr class="waf_learn_ip_tr" <?php if(!$WR->waf_learn_ip_only):?> style="display:none"<?php endif;?>> 
                        <td> 
                            <label for="waf_learn_ip">Allowed IPs to learn:<br /><small>(comma separated)</small></label> 
                        </td> 
                        <td>    
                            <textarea id="waf_learn_ip" name="waf_learn_ip"  class="inset"/><?php echo $WR->waf_learn_ip;?></textarea>  
                        </td> 
                    </tr> 
                    <tr> 
                        <td><label for="waf_skip_ip">IPs WhiteList:<br /><small>Skips Learn\Guard Mode.</small></label></td> 
                        <td><textarea id="waf_skip_ip" name="waf_skip_ip" class="inset"><?php echo $WR->waf_skip_ip;?></textarea></td> 
                    </tr> 
                    <tr><th colspan="2"><h2>Security Keys</h2><span><hr /></span></th></tr>     
                    <tr> 
                        <td><label>Security Key</label></td> 
                        <td><input type="text" name="waf_security_key" id="waf_security_key" value="<?php echo $WR->waf_security_key;?>" class="inset"></td> 
                    </tr> 
                    <tr> 
                            <td><label>Security Key2</label></td> 
                            <td><input type="text" name="waf_security_key2" id="waf_security_key2" value="<?php echo $WR->waf_security_key2;?>" class="inset"></td> 
                    </tr> 
                    <tr><td colspan="2"><input type="button" class="add_user" id="new_waf_security_key" value="Generate New Keys" style="width:200px;"></td></tr> 
                     
                    <tr><th colspan="2"><h2>Brute Force</h2><span><hr /></span></th></tr> 
                    <tr> 
                            <td><label>Brute Force Frequency</label></td> 
                            <td><input type="text" name="bf" id="bf" value="<?php echo $WR->waf_bf;?>" class="inset"></td> 
                    </tr> 
                    <tr> 
                            <td><label>Brute Force Attempts</label></td> 
                            <td><input type="text" name="bf_attempt" id="bf_attempt" value="<?php echo $WR->waf_bf_attempt;?>" class="inset"></td> 
                    </tr> 
                    <tr> 
                            <td>Brute Force Ban Time:</td> 
                            <td><input type='text' name="bf_bantime" id="bf_bantime" value="<?php echo $WR->waf_bf_bantime;?>" size="4" class="inset"> days <font style="color:dimgray;font-size:12px;">(0 days - block always)</font></td> 
                    </tr> 
                     
                    <tr><th colspan="2"><h2>Customization</h2><span><hr /></span></th></tr> 
                    <tr> 
                            <td><label>404 Page URL</label></td> 
                            <td><input type="text" name="url404" id="url404" value="<?php echo $WR->url404;?>" class="inset"></td> 
                    </tr> 
                    <tr> 
                        <td><label>Webmaster Email</label><br><small>(showed on 404 Page)</small></td> 
                            <td><input type="text" name="webmaster_email" id="webmaster_email" value="<?php echo $WR->webmaster_email;?>" class="inset" placeholder="[email protected]"></td> 
                    </tr> 
                    <tr><th colspan=2><hr /></th></tr> 
                    <tr> 
                            <td colspan="2"><input type="submit" value="Save" id="save_settings" name="save_settings" class="green_btn"></td> 
                    </tr> 
                </table>         
        </form>         
    </div>     
</div>     
<script> 
$('#new_waf_security_key').click(function (){ 
 if(confirm("If you change Security Key, you need immidiatly change it in HTACCESS EDIT, just save new code instead of old one.")) 
 { 
      $.get( "ajax.php?act=generate_key", function( json ) { 
         if(typeof(json.key)!='undefined')$('#waf_security_key').val(json.key);            
                 if(typeof(json.key2)!='undefined')$('#waf_security_key2').val(json.key2); 
         },'json'); 
 } 
}); 
//learn status changed 
$('#waf_learn_status').change(function (event){ 
     if($(event.target).is(":checked")) 
     { 
         $('.waf_learn_ip_only_tr').show(); 
         
     }else{ 
          $('.waf_learn_ip_only_tr').hide(); 
          $('#waf_learn_ip_only').attr('checked',false); 
          $('.waf_learn_ip_tr').hide(); 
           
     } 
}); 
 
$('#waf_learn_ip_only').change(function (event){ 
     if($(event.target).is(":checked")) 
     { 
        $('.waf_learn_ip_tr').show(); 
        $('.waf_learn_ip_approve_div').show(); 
     }else{ 
        $('.waf_learn_ip_tr').hide(); 
        $('.waf_learn_ip_approve_div').hide(); 
        $('.waf_learn_ip_approve').attr('checked',false); 
     } 
}); 
</script>         
<!--VARS SINGLE MENU EOF-->    
</body> 
</html>
 
 |