close FILE;
system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db");
- system("/usr/sbin/squidGuard -c $editdir/install.conf -C all");
+ system("/usr/bin/squidGuard -c $editdir/install.conf -C all");
system("chmod a+w $dbdir/$besettings{'BE_NAME'}/*.db");
&readblockcategories;
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}:");
+&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter filter settings'}");
print <<END
<table width='100%'>
<tr>
<td> </td>
</tr>
<tr>
- <td colspan='2'>$Lang::tr{'urlfilter blocked domains'} <img src='/blob.gif' alt='*' /></td>
- <td colspan='2'>$Lang::tr{'urlfilter blocked urls'} <img src='/blob.gif' alt='*' /></td>
+ <td colspan='2'>$Lang::tr{'urlfilter blocked domains'}</td>
+ <td colspan='2'>$Lang::tr{'urlfilter blocked urls'}</td>
</tr>
<tr>
<td colspan='2'>$Lang::tr{'urlfilter example'}</td>
<td> </td>
</tr>
<tr>
- <td colspan='2'>$Lang::tr{'urlfilter allowed domains'} <img src='/blob.gif' alt='*' /></td>
- <td colspan='2'>$Lang::tr{'urlfilter allowed urls'} <img src='/blob.gif' alt='*' /></td>
+ <td colspan='2'>$Lang::tr{'urlfilter allowed domains'}</td>
+ <td colspan='2'>$Lang::tr{'urlfilter allowed urls'}</td>
</tr>
<tr>
<td colspan='2'>$Lang::tr{'urlfilter example'}</td>
<td colspan='4'><b>$Lang::tr{'urlfilter custom expression list'}</b></td>
</tr>
<tr>
- <td colspan='4'>$Lang::tr{'urlfilter blocked expressions'} <img src='/blob.gif' alt='*' /></td>
+ <td colspan='4'>$Lang::tr{'urlfilter blocked expressions'}</td>
</tr>
<tr>
<td colspan='4'><textarea name='CUSTOM_EXPRESSIONS' cols='70' rows='3' wrap='off'>
<td> </td>
</tr>
<tr>
- <td colspan='2'>$Lang::tr{'urlfilter unfiltered clients'} <img src='/blob.gif' alt='*' /></td>
- <td colspan='2'>$Lang::tr{'urlfilter banned clients'} <img src='/blob.gif' alt='*' /></td>
+ <td colspan='2'>$Lang::tr{'urlfilter unfiltered clients'}</td>
+ <td colspan='2'>$Lang::tr{'urlfilter banned clients'}</td>
</tr>
<tr>
<td colspan='2' width='50%'><textarea name='UNFILTERED_CLIENTS' cols='32' rows='6' wrap='off'>
<tr>
<td width='25%' class='base'>$Lang::tr{'urlfilter show category'}:</td>
<td width='12%'><input type='checkbox' name='SHOW_CATEGORY' $checked{'SHOW_CATEGORY'}{'on'} /></td>
- <td width='25%' class='base'>$Lang::tr{'urlfilter redirectpage'}: <img src='/blob.gif' alt='*' /></td>
+ <td width='25%' class='base'>$Lang::tr{'urlfilter redirectpage'}:</td>
<td><input type='text' name='REDIRECT_PAGE' value='$filtersettings{'REDIRECT_PAGE'}' size='40' /></td>
</tr>
<tr>
<td class='base'>$Lang::tr{'urlfilter show url'}:</td>
<td><input type='checkbox' name='SHOW_URL' $checked{'SHOW_URL'}{'on'} /></td>
- <td class='base'>$Lang::tr{'urlfilter msg text 1'}: <img src='/blob.gif' alt='*' /></td>
+ <td class='base'>$Lang::tr{'urlfilter msg text 1'}:</td>
<td><input type='text' name='MSG_TEXT_1' value='$filtersettings{'MSG_TEXT_1'}' size='40' /></td>
</tr>
<tr>
<td class='base'>$Lang::tr{'urlfilter show ip'}:</td>
<td><input type='checkbox' name='SHOW_IP' $checked{'SHOW_IP'}{'on'} /></td>
- <td class='base'>$Lang::tr{'urlfilter msg text 2'}: <img src='/blob.gif' alt='*' /></td>
+ <td class='base'>$Lang::tr{'urlfilter msg text 2'}:</td>
<td><input type='text' name='MSG_TEXT_2' value='$filtersettings{'MSG_TEXT_2'}' size='40' /></td>
</tr>
<tr>
<td class='base'>$Lang::tr{'urlfilter show dnserror'}:</td>
<td><input type='checkbox' name='ENABLE_DNSERROR' $checked{'ENABLE_DNSERROR'}{'on'} /></td>
- <td class='base'>$Lang::tr{'urlfilter msg text 3'}: <img src='/blob.gif' alt='*' /></td>
+ <td class='base'>$Lang::tr{'urlfilter msg text 3'}:</td>
<td><input type='text' name='MSG_TEXT_3' value='$filtersettings{'MSG_TEXT_3'}' size='40' /></td>
</tr>
</table>
<hr size='1'>
<table width='100%'>
<tr>
- <td>
- <img src='/blob.gif' align='top' alt='*' />
- <font class='base'>$Lang::tr{'this field may be blank'}</font>
- </td>
- <td align='right'>
- </td>
+ <td><img src='/blob.gif' align='top' alt='*' /> <font class='base'>$Lang::tr{'required field'}</font></td>
+ <td align='right'> </td>
</tr>
</table>
<table width='100%'>
print "<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>\n";
-&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}:");
+&Header::openbox('100%', 'left', "$Lang::tr{'urlfilter maintenance'}");
print <<END
<table width='100%'>
<table width='100%'>
<tr>
- <td width='5%'>$Lang::tr{'urlfilter source'}</td>
+ <td width='5%'>$Lang::tr{'urlfilter source'} <img src='/blob.gif' alt='*' /></td>
<td width='1%'> </td>
- <td width='5%'>$Lang::tr{'urlfilter dst'} <img src='/blob.gif' alt='*'><img src='/blob.gif' alt='*'></td>
+ <td width='5%'>$Lang::tr{'urlfilter dst'} <img src='/blob.gif' alt='*' /></td>
<td width='1%'> </td>
<td width='5%'>$Lang::tr{'urlfilter access'}</td>
<td> </td>
<td> </td>
</tr>
<tr>
- <td>$Lang::tr{'remark'} <img src='/blob.gif' alt='*'></td>
+ <td>$Lang::tr{'remark'}</td>
<td> </td>
<td> </td>
<td> </td>
<table width='100%'>
<tr>
<td width='1%' align='right'> <img src='/blob.gif' align='top' alt='*' /> </td>
- <td><font class='base'>$Lang::tr{'this field may be blank'}</font></td>
+ <td><font class='base'>$Lang::tr{'required field'}</font></td>
</tr>
<tr>
- <td width='1%' align='right'><img src='/blob.gif' align='top' alt='*' /><img src='/blob.gif' align='top' alt='*' /> </td>
+ <td width='1%' align='right'> </td>
<td><font class='base'>$Lang::tr{'urlfilter select multi'}</font></td>
</tr>
</table>
<td width='25%'></td> <td width='20%'> </td><td width='25%'> </td><td width='30%'></td>
</tr>
<tr>
- <td class='base'>$Lang::tr{'urlfilter user time quota'}:</td>
+ <td class='base'>$Lang::tr{'urlfilter user time quota'}: <img src='/blob.gif' alt='*' /></td>
<td><input type='text' name='TIME_QUOTA' value='$uqsettings{'TIME_QUOTA'}' size='5' /></td>
<td colspan='2' rowspan= '5' valign='top' class='base'>
<table cellpadding='0' cellspacing='0'>
<!-- intentionally left empty -->
</tr>
<tr>
- <td>$Lang::tr{'urlfilter assigned quota users'}:</td>
+ <td>$Lang::tr{'urlfilter assigned quota users'}: <img src='/blob.gif' alt='*' /></td>
</tr>
<tr>
<!-- intentionally left empty -->
<td class='base'><b>$Lang::tr{'urlfilter blacklist name'}</b></td>
</tr>
<tr>
- <td class='base'>$Lang::tr{'urlfilter blacklist category name'}:</td>
+ <td class='base'>$Lang::tr{'urlfilter blacklist category name'}: <img src='/blob.gif' alt='*' /></td>
<td><input type='text' name='BE_NAME' value='$besettings{'BE_NAME'}' size='12' /></td>
</tr>
</table>
<td width='25%'></td> <td width='20%'> </td><td width='25%'> </td><td width='20%'></td>
</tr>
<tr>
- <td class='base' colspan='4'><b>$Lang::tr{'urlfilter edit domains urls expressions'}</b></td>
+ <td class='base' colspan='4'><b>$Lang::tr{'urlfilter edit domains urls expressions'}</b> <img src='/blob.gif' alt='*' /></td>
</tr>
<tr>
<td colspan='2'>$Lang::tr{'urlfilter domains'}</td>
sub writeconfigfile
{
- my $executables = "\\.\(ade|adp|asx|bas|bat|chm|com|cmd|cpl|crt|dll|eml|exe|hiv|hlp|hta|inc|inf|ins|isp|jse|jtd|lnk|msc|msh|msi|msp|mst|nws|ocx|oft|ops|pcd|pif|plx|reg|scr|sct|sha|shb|shm|shs|sys|tlb|tsp|url|vbe|vbs|vxd|wsc|wsf|wsh\)\$";
- my $audiovideo = "\\.\(aiff|asf|avi|dif|divx|mov|movie|mp3|mpe?g?|mpv2|ogg|ra?m|snd|qt|wav|wma|wmf|wmv\)\$";
- my $archives = "\\.\(bin|bz2|cab|cdr|dmg|gz|hqx|rar|smi|sit|sea|tar|tgz|zip\)\$";
+ my $executables = "/[^/]*\\.\(ade|adp|asx|bas|bat|chm|com|cmd|cpl|crt|dll|eml|exe|hiv|hlp|hta|inc|inf|ins|isp|jse|jtd|lnk|msc|msh|msi|msp|mst|nws|ocx|oft|ops|pcd|pif|plx|reg|scr|sct|sha|shb|shm|shs|sys|tlb|tsp|url|vbe|vbs|vxd|wsc|wsf|wsh\)\$";
+ my $audiovideo = "/[^/]*\\.\(aiff|asf|avi|dif|divx|flv|mkv|mov|movie|mp3|mp4|mpe?g?|mpv2|ogg|ra?m|snd|qt|wav|wma|wmf|wmv\)\$";
+ my $archives = "/[^/]*\\.\(7z|bin|bz2|cab|cdr|dmg|gz|hqx|rar|smi|sit|sea|tar|tgz|zip\)\$";
my $ident = " anonymous";
if ($filtersettings{'ENABLE_SAFESEARCH'} eq 'on')
{
print FILE " # rewrite safesearch\n";
- print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\\?)(.*)(\\bsafe=\\w+)(.*)\@\\1\\3safe=strict\\5\@i\n";
- print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\\?)(.*)\@\\1safe=strict\\\&\\3\@i\n";
+ print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|nwshp|frghp|froogle)\\?)(.*)(\\bsafe=\\w+)(.*)\@\\1\\3safe=strict\\5\@i\n";
+ print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|nwshp|frghp|froogle)\\?)(.*)\@\\1safe=strict\\\&\\3\@i\n";
print FILE " s@(.*\\Wsearch\\.yahoo\\.\\w+/search\\W)(.*)(\\bvm=\\w+)(.*)\@\\1\\2vm=r\\4\@i\n";
print FILE " s@(.*\\Wsearch\\.yahoo\\.\\w+/search\\W.*)\@\\1\\\&vm=r\@i\n";
print FILE " s@(.*\\Walltheweb\\.com/customize\\?)(.*)(\\bcopt_offensive=\\w+)(.*)\@\\1\\2copt_offensive=on\\4\@i\n";
+ print FILE " s@(.*\\Wbing\\.\\w+/)(.*)(\\badlt=\\w+)(.*)\@\\1\\2adlt=strict\\4\@i\n";
+ print FILE " s@(.*\\Wbing\\.\\w+/.*)\@\\1\\\&adlt=strict\@i\n";
}
print FILE "}\n\n";