Tive a ilustre ideia de desenvolver uma página totalmente diferente, com os meus dotes em programação, que são iguais aos de
culinária (hahaha!).
Fiz uma página em PHP que tem a seguinte função:
- Pegar IP do usuário;
- Pegar URL do site;
- Mostrar dia hora do acesso;
- Gravar automaticamente esta entrada no MySQL, para ter um relatório de sites acessados bloqueados.
Não sei se conseguiram entender, mas a ideia ficou muito 'massa'. A página é uma cópia do layout do 'Avast! 7', sim do 'Avast!'
(já falei que programei essa página como faço comida!!!!).
Na página de erro do Squid (ERR_ACCESS_DENIED)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ERRO: A URL requisitada não pôde ser recuperada</title>
</head>
<body>
<form name="bloquear" action="http://proxy_erro_page.php" method="post">
<input type="hidden" name="url" value="%U">
<input name="grava" type="submit" value="grava">
</form>
<script language="javascript">
document.bloquear.submit();
</script>
</body>
</html>
Código da página PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE>BODY {
PADDING-BOTTOM: 30px; PADDING-LEFT: 30px; PADDING-RIGHT: 30px; PADDING-TOP: 30px
}
H1 {
MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; COLOR: #808080; FONT-SIZE: 8pt; FONT-WEIGHT:
normal
}
H2 {
TEXT-TRANSFORM: uppercase; MARGIN: 0cm 0cm 5pt; FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; COLOR: #ffa500;
FONT-SIZE: 19pt; FONT-
WEIGHT: normal
}
H3 {
PADDING-BOTTOM: 5.4pt; TEXT-TRANSFORM: uppercase; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Segoe UI", Calibri, Arial,
Verdana; FONT-SIZE: 10pt;
FONT-WEIGHT: normal; PADDING-TOP: 30pt
}
A:link {
COLOR: #ffa500; TEXT-DECORATION: underline; text-underline: single
}
A:visited {
COLOR: purple; TEXT-DECORATION: underline; text-underline: single
}
.text {
MARGIN: 0px 0px 1pt; FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; FONT-SIZE: 8pt; PADDING-TOP: 10pt
}
.footer {
MARGIN-TOP: 60pt; FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; COLOR: gray; FONT-SIZE: 8pt
}
TD {
PADDING-BOTTOM: 0cm; LINE-HEIGHT: 14pt; PADDING-LEFT: 5.4pt; PADDING-RIGHT: 5.4pt; FONT-SIZE: 8pt; PADDING-TOP:
0cm
}
TD.header {
WIDTH: 75pt; FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; FONT-WEIGHT: bold
}
TD.value {
FONT-FAMILY: "Segoe UI", Calibri, Arial, Verdana; FONT-WEIGHT: normal
}
</STYLE>
<META name=GENERATOR content="MSHTML 9.00.8112.16421"></HEAD>
<BODY>
<TABLE>
<TBODY>
<TR>
<TD><IMG src="gfx/erro_proxy.png"> </TD>
<TD>
<H1>Alerta de proteção!</H1>
<H2>Site bloqueado</H2></TD></TR>
<TR>
<TD>
<TD>
<P class=text>O site a seguir foi bloqueado devido a politica da empresa.</P>
<H3>Detalhes</H3>
<TABLE>
<TBODY>
<TR>
<TD class=header>URL:</TD>
<TD class=value><?php
$urlatual=$_POST['url'];
echo $urlatual;
?></TD></TR>
<TR>
<TD class=header>Acessado em:</TD>
<TD class=value><?php date_default_timezone_set('America/Sao_Paulo'); echo date('d/m/Y - h:i'); ?
></TD></TR></TBODY></TABLE>
<P class=footer>Se você não concorda com esse bloqueio entre em contado com o suporte:
suporte@escolainfoserv.com.br.</P></TD></TR>
</TBODY></TABLE></BODY></HTML>
<?php
include ('inc/conf.inc.php');
//Fazendo a conexão com o servidor MySQL para pegar resultado
$conexao = mysql_connect($servidor,$usuario,$senha) or die($msg[0]);
mysql_select_db($banco,$conexao) or die($msg[1]);
$ip_cliente=$_SERVER["REMOTE_ADDR"];
$dia_hora=date('d/m/Y - h:i');
// Inserindo a url no banco
$string_sql = "INSERT INTO proxy_bloqueados (`id` ,`url` ,`ip` ,`hora`)VALUES ('null', '$urlatual', '$ip_cliente',
'$dia_hora')";
mysql_query($string_sql,$conexao);
if(mysql_affected_rows() == 1){
} else {
echo "Erro, não possível inserir no banco de dados";
}
?>
<?php
/*
/usr/share/squid/errors/pt-br/ERR_ACCESS_DENIED
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ERRO: A URL requisitada não pôde ser recuperada</title>
</head>
<body>
<iframe scrolling="no" frameborder="0" width=800px height=800px
src="http://172.16.1.252/infoweb/projetos/desenvolvimento/A/magneto_admin/proxy_erro_page.php?
url=%U"></iframe>
</body>
</html>
*/
?>
Estrutura MySQL
-- phpMyAdmin SQL Dump
-- version 3.4.6
-- http://www.phpmyadmin.net
--
-- Servidor: 172.16.1.251:3306
-- Tempo de Geração: 15/03/2012 às 04h02min
-- Versão do Servidor: 5.5.18
-- Versão do PHP: 5.3.8
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Banco de Dados: `painel`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `proxy_bloqueados`
--
CREATE TABLE IF NOT EXISTS `proxy_bloqueados` (
`id` int(11) NOT NULL,
`url` text NOT NULL,
`ip` text NOT NULL,
`hora` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Extraindo dados da tabela `proxy_bloqueados`
--
INSERT INTO `proxy_bloqueados` (`id`, `url`, `ip`, `hora`) VALUES
(0, 'http://terra.com.br', '172.16.1.1', '15/03/2012 - 03:14'),
(0, 'http://172.16.1.252/......................................../proxy_erro_page.php', '172.16.1.209', '15/03/2012 - 03:55'),
(0, 'http://172.16.1.252//........................................//proxy_erro_page.php', '172.16.1.209', '15/03/2012 - 03:56'),
(0, 'http://172.16.1.252//........................................//proxy_erro_page.php', '172.16.1.102', '15/03/2012 - 03:57');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Depois disso, é so largar no
Squid, como página de erro padrão.
- deny_info: http://IPDOSERVIDOR/proxy_error_page.php (MINHAS ACL)
Se alguém tiver mais dicas, ou ideais mirabolantes, estou aberto a novos projetos.
Abraços,
Marcos Carraro