From 6bb6b31d794ca0f1b72f46103e3b32040dabfbf6 Mon Sep 17 00:00:00 2001 From: edmarmoretti Date: Fri, 19 Aug 2016 15:18:25 -0300 Subject: [PATCH] Novas variáveis de configuração disponíveis em ms_configura.php para controle das opções de login --- admin/php/admin.php | 6 ++---- admin/php/criabanco.php | 9 +++++++++ admin/php/incluiMAP.php | 9 +++++++++ admin/php/login.php | 11 +++++++++++ admin/php/upgradebanco44_45.php | 12 +++++++++++- admin/php/upgradebanco46_47.php | 10 ++++++++++ admin1/ferramentas/banco/index.php | 6 ++++++ admin1/ferramentas/criabanco/index.php | 6 ++++++ admin1/ferramentas/estatisticas/index.php | 6 ++++++ admin1/ferramentas/miniaturas/index.php | 5 +++++ classesjs/compactajs.php | 10 ++++++++++ classesphp/funcoes_gerais.php | 51 ++++++++++++++++++++++++++++++++++++++++++--------- ferramentas/loginusuario/dependencias.php | 9 +++++++++ geraminiatura.php | 10 ++++++++++ js/compactajs.php | 9 +++++++++ ms_configura.php | 32 ++++++++++++++++++++++++++++++-- ms_criamapa.php | 1 + testainstal/index.php | 11 +++++++++-- testamapfile.php | 23 +++++++++++++++++++---- 19 files changed, 214 insertions(+), 22 deletions(-) diff --git a/admin/php/admin.php b/admin/php/admin.php index c70a6e2..460c273 100755 --- a/admin/php/admin.php +++ b/admin/php/admin.php @@ -33,10 +33,8 @@ Arquivo: i3geo/admin/php/admin.php */ -if(!isset($locaplic) || !isset($dir_tmp)){ - $locaplic = ""; - include(dirname(__FILE__)."/../../ms_configura.php"); -} +include(dirname(__FILE__)."/../../ms_configura.php"); + if(!file_exists($dir_tmp)){ @mkdir ($dir_tmp,0744); chmod($dir_tmp,0744); diff --git a/admin/php/criabanco.php b/admin/php/criabanco.php index b298597..6dab344 100755 --- a/admin/php/criabanco.php +++ b/admin/php/criabanco.php @@ -50,6 +50,15 @@ //echo dirname(__FILE__); $esquemaadmin = ""; include("admin.php"); + //verifica se o login pode ser realizado + if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); + } + //$i3geoPermiteLoginIp vem de ms_configura.php + if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); + } error_reporting(0); $tabelas = array( //tabelas gerais do sistema de administracao diff --git a/admin/php/incluiMAP.php b/admin/php/incluiMAP.php index 7e4bc5e..5e1e19c 100755 --- a/admin/php/incluiMAP.php +++ b/admin/php/incluiMAP.php @@ -36,6 +36,15 @@ i3geo/admin/php/incluiMAP.php $funcao = ""; $locaplic = dirname(__FILE__)."/../.."; include_once("admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} include_once("conexao.php"); if(empty($_POST["senha"]) || empty($_POST["usuario"])){ formularioLoginMaster("incluiMAP.php"); diff --git a/admin/php/login.php b/admin/php/login.php index c5c3053..fc249ad 100755 --- a/admin/php/login.php +++ b/admin/php/login.php @@ -64,6 +64,17 @@ error_reporting(0); // include_once(dirname(__FILE__)."/../safe.php"); include_once(dirname(__FILE__)."/admin.php"); + +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + error_reporting(0); session_write_close(); session_name("i3GeoLogin"); diff --git a/admin/php/upgradebanco44_45.php b/admin/php/upgradebanco44_45.php index 65a61f8..8609cc1 100755 --- a/admin/php/upgradebanco44_45.php +++ b/admin/php/upgradebanco44_45.php @@ -48,6 +48,16 @@ i3geo/admin/php/criabanco.php */ $funcao = ""; include_once("admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + include_once("conexao.php"); if(empty($_POST["senha"]) || empty($_POST["usuario"])){ @@ -75,7 +85,7 @@ if($conexaoadmin == "") } else { - include($conexaoadmin); + include($conexaoadmin); } */ foreach($tabelas as $tabela) diff --git a/admin/php/upgradebanco46_47.php b/admin/php/upgradebanco46_47.php index 08f56ec..7eaa79c 100755 --- a/admin/php/upgradebanco46_47.php +++ b/admin/php/upgradebanco46_47.php @@ -51,6 +51,16 @@ i3geo/admin/php/criabanco.php $funcao = ""; $locaplic = dirname(__FILE__)."/../.."; include_once("admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + include_once("conexao.php"); if(!empty($esquemaadmin)){ $esquemaadmin = str_replace(".","",$esquemaadmin)."."; diff --git a/admin1/ferramentas/banco/index.php b/admin1/ferramentas/banco/index.php index 8a5ea99..0ca7b44 100755 --- a/admin1/ferramentas/banco/index.php +++ b/admin1/ferramentas/banco/index.php @@ -1,6 +1,12 @@ diff --git a/admin1/ferramentas/criabanco/index.php b/admin1/ferramentas/criabanco/index.php index c1e5aa8..d43d5fe 100755 --- a/admin1/ferramentas/criabanco/index.php +++ b/admin1/ferramentas/criabanco/index.php @@ -1,6 +1,12 @@ diff --git a/admin1/ferramentas/estatisticas/index.php b/admin1/ferramentas/estatisticas/index.php index c574e9f..778407b 100755 --- a/admin1/ferramentas/estatisticas/index.php +++ b/admin1/ferramentas/estatisticas/index.php @@ -1,6 +1,12 @@ diff --git a/admin1/ferramentas/miniaturas/index.php b/admin1/ferramentas/miniaturas/index.php index 6b67921..fcc870c 100755 --- a/admin1/ferramentas/miniaturas/index.php +++ b/admin1/ferramentas/miniaturas/index.php @@ -1,6 +1,11 @@ diff --git a/classesjs/compactajs.php b/classesjs/compactajs.php index bc7174f..c2bf618 100755 --- a/classesjs/compactajs.php +++ b/classesjs/compactajs.php @@ -44,6 +44,16 @@ i3geo/classesjs/compactajs.php $locaplic = dirname(__FILE__)."/.."; include_once(dirname(__FILE__)."/../admin/php/admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + include_once(dirname(__FILE__)."/../admin/php/conexao.php"); if(empty($_POST["senha"]) || empty($_POST["usuario"])){ formularioLoginMaster("compactajs.php"); diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 20df1d7..7258ed5 100755 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -2095,15 +2095,24 @@ Retorno: {string} */ -function pegaIPcliente() -{ - $ip = "UNKNOWN"; - if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); - else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); - else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); - else $ip = "UNKNOWN"; - //$ip = "200.252.111.1";//teste - return $ip; +function pegaIPcliente(){ + $ipaddress = ''; + if (getenv('HTTP_CLIENT_IP')) + $ipaddress = getenv('HTTP_CLIENT_IP'); + else if(getenv('HTTP_X_FORWARDED_FOR')) + $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); + else if(getenv('HTTP_X_FORWARDED')) + $ipaddress = getenv('HTTP_X_FORWARDED'); + else if(getenv('HTTP_FORWARDED_FOR')) + $ipaddress = getenv('HTTP_FORWARDED_FOR'); + else if(getenv('HTTP_FORWARDED')) + $ipaddress = getenv('HTTP_FORWARDED'); + else if(getenv('REMOTE_ADDR')) + $ipaddress = getenv('REMOTE_ADDR'); + else + $ipaddress = 'UNKNOWN'; + + return $ipaddress; } /* Function: pegaIPcliente2 @@ -3051,4 +3060,28 @@ function i3GeoLog($txt,$dir_tmp=""){ "-------------------------".PHP_EOL; file_put_contents($dir_tmp.'/.log_i3geo_'.date("j.n.Y"), $log, FILE_APPEND); } +/** + * valida o IP do usuario em uma lista branca + */ +function validaIpUsuario($lista){ + if($lista == ""){ + return true; + } + $ip = pegaIPcliente(); + if(in_array($ip,$lista)){ + return true; + } else { + return false; + } +} +function checaLoginIp($lista){ + if(empty($lista)){ + return; + } + $r = validaIpUsuario($lista); + if($r == false){ + header ( "HTTP/1.1 403 Login nao permitido" ); + exit (); + } +} ?> diff --git a/ferramentas/loginusuario/dependencias.php b/ferramentas/loginusuario/dependencias.php index 7e7f030..ae32eff 100755 --- a/ferramentas/loginusuario/dependencias.php +++ b/ferramentas/loginusuario/dependencias.php @@ -6,6 +6,15 @@ * javascript i3GEOF.loginusuario.MUSTACHE * O template e substituido pelos valores definidos em index.js no momento da inicializacao da ferramenta */ + +//verifica se o login pode ser realizado +include(dirname(__FILE__)."/../../ms_configura.php"); +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + echo "alert('ferramenta de login desativada');"; + //header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} + if(extension_loaded('zlib')){ ob_start('ob_gzhandler'); } diff --git a/geraminiatura.php b/geraminiatura.php index 714f249..b2aaac4 100755 --- a/geraminiatura.php +++ b/geraminiatura.php @@ -84,6 +84,16 @@ if (!function_exists('ms_GetVersion')) } include_once (dirname(__FILE__)."/admin/php/admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + $versao = versao(); $versao = $versao["principal"]; // diff --git a/js/compactajs.php b/js/compactajs.php index f4f335e..856c6c1 100755 --- a/js/compactajs.php +++ b/js/compactajs.php @@ -43,6 +43,15 @@ i3geo/js/compactajs.php // $locaplic = dirname(__FILE__)."/.."; include_once(dirname(__FILE__)."/../admin/php/admin.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} include_once(dirname(__FILE__)."/../admin/php/conexao.php"); if(empty($_POST["senha"]) || empty($_POST["usuario"])){ diff --git a/ms_configura.php b/ms_configura.php index f016946..6a5d3eb 100755 --- a/ms_configura.php +++ b/ms_configura.php @@ -62,6 +62,32 @@ array(array("usuario"=>"admin", "senha"=>"adminx")); $i3geomaster = array( array("usuario"=>"admin", "senha"=>"admin") ); +//TODO documentar no moodle +/* +Variable: $i3geoPermiteLogin + +Permite ou impede que sejam executadas as funcionalidades que exigem login + +Quando false o login e bloaueado, mesmo para usuarios cadastrados + +Tipo: +{boolean} +*/ +$i3geoPermiteLogin = true; +/* +Variable: $i3geoPermiteLoginIp + +Lista de IPs que podem fazer login. Valido apenas se $i3geoPermiteLogin for true + +A lista e um array, permitindo a inclusao de varios IPs + +Para nao fazer a verificacao, ou seja, permitir que qualquer IP faca login, deixe essa variavel em branco + +Exemplo de uso: + +$i3geoPermiteLoginIp = array("127.0.0.1","200.200.200.200"); +*/ +$i3geoPermiteLoginIp = array(); /* Variable: $logTransacoes @@ -94,6 +120,8 @@ $logTransacoes = false; Para evitar o log, basta definir os valores como false ou $logExec = '' + Tipo: + {array} */ $logExec = array( "mapa_" => false, //mapa_openlayers e mapa_googlemaps @@ -146,8 +174,8 @@ Sobre essas configuracoes, veja na pasta i3geo/ferramentas e na documentacao do sistema de administracao do i3Geo */ $statusFerramentas = array( - "saiku"=>true, - "melhorcaminho"=>true + "saiku"=>false, + "melhorcaminho"=>false ); /* Variable: $ogrOutput diff --git a/ms_criamapa.php b/ms_criamapa.php index 2175368..acf42c9 100755 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -275,6 +275,7 @@ if(!isset($funcao)){ } include_once (dirname(__FILE__)."/classesphp/funcoes_gerais.php"); + $versao = versao(); $versao = $versao["principal"]; diff --git a/testainstal/index.php b/testainstal/index.php index 1c38bcc..b53af1a 100755 --- a/testainstal/index.php +++ b/testainstal/index.php @@ -74,8 +74,15 @@ include "../init/head.php"; */ $locaplic = dirname(dirname(__FILE__)); include_once("../admin/php/admin.php"); - include_once("../ms_configura.php"); - + //verifica se o login pode ser realizado + if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); + } + //$i3geoPermiteLoginIp vem de ms_configura.php + if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); + } ?> diff --git a/testamapfile.php b/testamapfile.php index e928b80..443e45f 100755 --- a/testamapfile.php +++ b/testamapfile.php @@ -55,9 +55,21 @@ tabela - (opcional) testa a tabela de atributos set_time_limit(300); ini_set('max_execution_time', 300); +include_once (dirname(__FILE__)."/classesphp/sani_request.php"); +$_GET = array_merge($_GET,$_POST); include("ms_configura.php"); +//verifica se o login pode ser realizado +if(isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false){ + header ( "HTTP/1.1 403 Login desativado" ); + exit (); +} include("classesphp/funcoes_gerais.php"); -require_once("classesphp/pega_variaveis.php"); + +//$i3geoPermiteLoginIp vem de ms_configura.php +if(isset($i3geoPermiteLoginIp)){ + checaLoginIp($i3geoPermiteLoginIp); +} + include_once ("classesphp/carrega_ext.php"); // //carrega o phpmapscript @@ -114,9 +126,14 @@ if ($tipo == "") echo $combo."
"; echo '
'; } + +$solegenda = $_GET["solegenda"]; +$iniciar = $_GET["iniciar"]; +$map = $_GET["map"]; + if (isset($map) && $map != "") { - if(!isset($solegenda)){$solegenda = "nao";} + if(!isset($solegenda) || $solegenda == ""){$solegenda = "nao";} if ($map == "todos"){ $tipo = "todos"; $conta = 0; @@ -187,8 +204,6 @@ function verifica($map,$solegenda,$tabela,$cache="sim"){ {$tema = 'temas/'.$map;} if (file_exists('temas/'.$map.'.map')) {$tema = 'temas/'.$map.".map";} - if (file_exists('temas/'.$map.'.php')) - {$tema = 'temas/'.$map.".php";} if (file_exists('temas/'.$map.'.gvp')) {$tema = 'temas/'.$map.".gvp";} } -- libgit2 0.21.2