Changeset 31370 for extensions/AntiAspi
- Timestamp:
- Feb 26, 2016, 11:26:37 AM (8 years ago)
- Location:
- extensions/AntiAspi
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/AntiAspi/admin.php
r31367 r31370 18 18 else 19 19 $page['tab'] = $_GET['tab']; 20 20 $template->func_combine_css(array('id'=>'dst','path'=>ANTIASPI_PATH.'antiaspi.css')); 21 21 22 22 23 23 $tabsheet = new tabsheet(); 24 24 $tabsheet->add('ipban', l10n('IP ban'), ANTIASPI_ADMIN . '-ipban'); 25 $tabsheet->add('ipconfig', l10n('Configuration '), ANTIASPI_ADMIN . '-ipconfig '); 25 26 $tabsheet->select($page['tab']); 26 27 $tabsheet->assign(); 27 28 28 // Tab gest29 29 switch ($page['tab']) { 30 30 case 'ipban': 31 $template->assign( 32 'ipbangest', array( 33 'A' => 'a' 34 )); 31 35 $ipban = pwg_query("SELECT * FROM " . ANTIASPI_TABLE . ";"); 32 36 … … 99 103 100 104 break; 105 case 'ipconfig': 106 global $conf, $template; 107 $admin_base_url = ANTIASPI_ADMIN . '-ipconfig'; 108 $antiaspi = safe_unserialize($conf['antiaspi']); 109 /* 110 $conf['antiaspi'] = array( 111 'diff' => '20 pages in 00:00:10' , // IP banned if 20 different pages viewed in 10 seconds 112 'same' => '15 pages in 00:00:30' , // IP banned if same 15 pages viewed in 30 seconds 113 'banned during' => '23:59:59' , // IP banned during hh:mm:ss 114 'only guest' => true , // If true, don't ban registered users 115 'only picture' => false , // If true, apply antiaspi only on picture page 116 'allowed ip' => array() // Autorized IP (robots for example) 117 ); 118 */ 119 $diff = explode(" pages in ", $antiaspi['diff']); 120 $tempsdiff= explode(":", $diff[1]); 121 $tempsdiffsec=$tempsdiff[2]+($tempsdiff[1]*60)+($tempsdiff[0]*60*60); 122 123 $same = explode(" pages in ", $antiaspi['same']); 124 $tempssame= explode(":", $same[1]); 125 $tempssamesec=$tempssame[2]+($tempssame[1]*60)+($tempssame[0]*60*60); 126 127 $onlyguest = array( 128 l10n('yes'), 129 l10n('no'), 130 ); 131 $onlyguestv = array( 132 true, 133 false, 134 ); 135 $onlypicture = array( 136 l10n('yes'), 137 l10n('no'), 138 ); 139 $onlypicturev = array( 140 true, 141 false, 142 ); 143 $template->assign( 144 'ipconfiggest', array( 145 'DIFFA' => $diff[0], 146 'DIFFB' => $tempsdiffsec, 147 'SAMEA' => $same[0], 148 'SAMEB' => $tempssamesec, 149 'ONLYGUEST' => $onlyguest, 150 'ONLYGUESTV' => $onlyguestv, 151 'ONLYGUESTSELECT' => $antiaspi['only guest'], 152 'ONLYPICTURE' => $onlypicture, 153 'ONLYPICTUREV' => $onlypicturev, 154 'ONLYPICTURESELECT' => $antiaspi['only picture'], 155 )); 156 $i = 0; 157 while ($i < count($antiaspi['allowed ip'])) { 158 159 $items = array( 160 'IP' => $antiaspi['allowed ip'][$i], 161 'U_DELETE' => $admin_base_url . '&delete='.$i , 162 ); 163 164 $template->append('allowip', $items); 165 $i++; 166 } 167 168 169 /*$time = '7000'; 170 echo date('h:i:s', $time); 171 */ 172 173 if (isset($_POST['submitconfban'])) { 174 /*$time = date('h:i:s', $_POST['insdiffb']); revoir fonction date HS ?*/ 175 $antiaspi['diff']=$_POST['insdiffa'].' pages in '.date('00:i:s', ($_POST['insdiffb'])); 176 $antiaspi['same']=$_POST['inssamea'].' pages in '.date('00:i:s', ($_POST['inssameb'])); 177 $antiaspi['only guest']=$_POST['insonlyguest']; 178 $antiaspi['only picture']=$_POST['insonlypicturet']; 179 180 conf_update_param('antiaspi', $antiaspi); 181 redirect($admin_base_url); 182 } 183 184 if (isset($_POST['submitaddipallowed'])) { 185 $i = 0; 186 while ($i < count($antiaspi['allowed ip'])) { 187 if($_POST['insipallowed']==$antiaspi['allowed ip'][$i]) 188 { 189 $_SESSION['page_errors'] = array(l10n('IP already allowed')); 190 redirect($admin_base_url); 191 } 192 $i++; 193 }; 194 195 $antiaspi['allowed ip'][]=$_POST['insipallowed']; 196 conf_update_param('antiaspi', $antiaspi); 197 redirect($admin_base_url); 198 } 199 200 if (isset($_GET['delete'])) { 201 check_input_parameter('delete', $_GET, false, PATTERN_ID); 202 unset($antiaspi['allowed ip'][($_GET['delete'])]); 203 $antiaspi['allowed ip'] = array_values($antiaspi['allowed ip']); 204 conf_update_param('antiaspi', $antiaspi); 205 redirect($admin_base_url); 206 } 207 208 209 break; 101 210 } 102 211 -
extensions/AntiAspi/admin.tpl
r31367 r31370 1 1 {include file='include/datepicker.inc.tpl'} 2 2 {combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} 3 {combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} 3 4 {footer_script} 4 5 … … 55 56 $(this).val(d); 56 57 }); 58 // slide 59 $('.range').each(function(){ 60 var cls=$(this).attr('class'); 61 var elem=$(this).parent(); 62 var input=elem.find('input'); 63 var options={}; 64 elem.append('<div class="uirange"></div>'); 65 options.slide=function(event,ui){ 66 elem.find('label span').empty().append(ui.value); 67 input.val(ui.value); 68 } 69 options.value=input.val(); 70 options.range='min'; 71 options.min=$(this).data('min'); 72 options.max=$(this).data('max'); 73 elem.find('.uirange').slider(options); 74 elem.find('label span').empty().append(input.val()); 75 input.hide(); 76 }); 57 77 }); 58 78 59 79 {/footer_script} 80 81 {html_style} 82 .uirange{ 83 margin:10px; 84 margin-left: 40px; 85 } 86 {/html_style} 60 87 61 88 <div class="titrePage"> 62 89 <h2>{'AntiAspi'|@translate}</h2> 63 90 </div> 91 {if isset ($ipbangest)} 64 92 <form method="post" > 65 93 <fieldset> … … 67 95 </fieldset> 68 96 </form> 97 {/if} 69 98 {if isset ($ipban_add)} 70 99 <form method="post"> … … 81 110 </form> 82 111 {/if} 112 {if isset ($ipbangest)} 83 113 <form method="post" > 84 114 <fieldset> 85 115 <legend>{'List IP banned'|@translate}</legend> 116 <table class="lban"> 86 117 {foreach from=$ipban2 item=ipban} 87 <!-- {$ipban.ID} --> {$ipban.IP} {$ipban.DATE} 118 <tr> 119 <td><!-- {$ipban.ID} --> {$ipban.IP}</td> 120 <td>{$ipban.DATE}</td> 121 <td> 88 122 <a href="{$ipban.U_EDIT}"> 89 123 <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/edit_s.png" alt="{'edit'|@translate}" title="{'edit'|@translate}" /> … … 92 126 <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png" id="btn_delete" alt="{'delete'|@translate}" title="{'Delete'|@translate}" /> 93 127 </a> 94 <br> 128 </td> 129 </tr> 95 130 {/foreach} 131 </table> 96 132 </fieldset> 97 133 </form> 134 {/if} 98 135 {if isset ($ipban_edit)} 99 136 <form method="post" > … … 111 148 </form> 112 149 {/if} 150 151 {if isset ($ipconfiggest)} 152 <form method="post"> 153 <fieldset> 154 <legend>{'Configuration'|translate}</legend> 155 <fieldset> 156 <p class="input" style="width: 700px;"> 157 <label for="insdiffa"><strong>{'IP banned if '|@translate}<span></span></strong></label> 158 <input type="text" name="insdiffa" data-min="10" data-max="500" class="range" value="{$ipconfiggest.DIFFA}"/> 159 </p> 160 <p class="input" style="width: 700px;"> 161 <label for="insdiffb"><strong>{' different pages viewed in <span></span> seconds'|@translate} </strong></label> 162 <input type="text" name="insdiffb" data-min="5" data-max="3599" class="range" value="{$ipconfiggest.DIFFB}"/> 163 </p> 164 </fieldset> 165 <fieldset> 166 <p class="input" style="width: 700px;"> 167 <label for="inssamea"><strong>{'IP banned if same '|@translate}<span></span></strong></label> 168 <input type="text" name="inssamea" data-min="10" data-max="500" class="range" value="{$ipconfiggest.SAMEA}"/> 169 </p> 170 <p class="input" style="width: 700px;"> 171 <label for="inssameb"><strong>{' different pages viewed in <span></span> seconds'|@translate} </strong></label> 172 <input type="text" name="inssameb" data-min="5" data-max="3599" class="range" value="{$ipconfiggest.SAMEB}"/> 173 </p> 174 </fieldset> 175 <p> 176 <strong>{'only guest'|@translate}</strong> 177 {html_radios separator=" " name="insonlyguest" values=$ipconfiggest.ONLYGUESTV output=$ipconfiggest.ONLYGUEST selected="{$ipconfiggest.ONLYGUESTSELECT}"} 178 ({'If yes, don\'t ban registered users'|@translate}) 179 </p> 180 <p> 181 <strong>{'only picture'|@translate}</strong> 182 {html_radios separator=" " name="insonlypicturet" values=$ipconfiggest.ONLYPICTUREV output=$ipconfiggest.ONLYPICTURE selected="{$ipconfiggest.ONLYPICTURESELECT}"} 183 ({'If yes, apply antiaspi only on picture page'|@translate}) 184 </p> 185 <fieldset> 186 <legend>{'allowed ip'|translate}</legend> 187 <table class="lban"> 188 {foreach from=$allowip item=allowip2} 189 <tr> 190 <td>{$allowip2.IP}</td> 191 <td> 192 <a href="{$allowip2.U_DELETE}" onclick="return confirm( document.getElementById('btn_delete').title + '\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');"> 193 <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png" id="btn_delete" alt="{'delete'|@translate}" title="{'Delete'|@translate}" /> 194 </a> 195 </td> 196 </tr> 197 {/foreach} 198 </table> 199 </fieldset> 200 <p> 201 <input class="submit" type="submit" name="submitconfban" value="{'Submit'|@translate}"> 202 </p> 203 </fieldset> 204 </form> 205 {if isset ($ipconfiggest)} 206 <form method="post"> 207 <fieldset> 208 <legend>{'Add IP allowed'|@translate}</legend> 209 {'IP'|@translate} <input " type="text" name="insipallowed" data-ip placeholder="123.123.123.123" value="" size="50" maxlenght="50" required pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"> 210 <br> 211 <br> 212 <div style="text-align:center;"> 213 <input class="submit" name="submitaddipallowed" type="submit" value="{'Submit'|@translate}" /> 214 </div> 215 </fieldset> 216 </form> 217 {/if} 218 {/if} -
extensions/AntiAspi/antiaspi.css
r31367 r31370 14 14 background-image:none; 15 15 } 16 table.lban td{ 17 padding-right:20px; 18 } 19 20 .lignebis { 21 background-color:green; 22 } -
extensions/AntiAspi/main.inc.php
r31362 r31370 29 29 global $user, $conf, $page; 30 30 31 $antiaspi = array(31 /*$antiaspi = array( 32 32 'diff' => '20 pages in 00:00:10' , // IP bannie si 20 pages différentes vues en 10 secondes 33 33 'same' => '15 pages in 00:00:30' , // IP bannie si 15 pages identiques vues en 30 secondes … … 39 39 40 40 if (isset($conf['antiaspi'])) 41 { 42 $antiaspi = array_merge($antiaspi,$conf['antiaspi']);43 }41 {*/ 42 $antiaspi = safe_unserialize($conf['antiaspi']); 43 // } 44 44 45 45 if (is_admin() or ($antiaspi['only guest'] and !is_a_guest())) return; -
extensions/AntiAspi/maintain.class.php
r29307 r31370 43 43 function update($old_version, $new_version, &$errors=array()) 44 44 { 45 global $conf; 46 47 if (!isset($conf['antiaspi'])) 48 { 49 $conf['antiaspi'] = array( 50 'diff' => '20 pages in 00:00:10' , 51 'same' => '15 pages in 00:00:30' , 52 'banned during' => '23:59:59' , 53 'only guest' => true , 54 'only picture' => false , 55 'allowed ip' => array('123.123.123.123','122.122.122.122'), 56 ); 57 conf_update_param('antiaspi', $conf['antiaspi']); 58 } 59 45 60 $this->install($new_version, $errors); 46 61 }
Note: See TracChangeset
for help on using the changeset viewer.