Commit b871ac8876dd0436e27c1d37d8cae668c1b57c78

Authored by Edmar Moretti
1 parent 7fbab1b0

Reformulação do código do sistema de administração para aprmoramento da segurança

admin/php/metaestat_mapa_uploadimagem.php
1 1 <?php
  2 +exit;
2 3 /*
3 4 * Faz o upload de imagens para a pasta templates/logos
4 5 * Essas imagens sao utilizadas nos mapas e sao escolhidas pelo usuario no formulario de publicacao dos mapas
5 6 */
6   -include_once("admin.php");
7 7 include_once("login.php");
8 8 if(verificaOperacaoSessao("admin/metaestat/geral") == false){
9 9 echo "Vc nao pode realizar essa operacao.";exit;
... ... @@ -31,7 +31,6 @@ if (isset($_FILES[&#39;uploadimagem&#39;][&#39;name&#39;])){
31 31 }
32 32 //sobe arquivo
33 33 $Arquivo = $_FILES['uploadimagem']['tmp_name'];
34   - //echo $Arquivo;
35 34 $status = move_uploaded_file($Arquivo,str_replace(".png","",$arq).".png");
36 35 if($status != 1)
37 36 {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo. Verifique as permissoes de escrita";exit;}
... ...
admin/php/metaestat_templates.php
1 1 <?php
  2 + include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
2 3 include(dirname(__FILE__)."/../../ms_configura.php");
3 4 include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
4 5 //parser do arquivo para envio como imagem diretamente ao navegador
... ...
admin/php/metaestat_uploadcsv_submit.php
... ... @@ -2,7 +2,6 @@
2 2 /*
3 3 * Faz o upload de csv e insere no banco de dados criando uma nova tabela
4 4 */
5   -include_once("admin.php");
6 5 include_once("login.php");
7 6 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){
8 7 echo "Vc nao pode realizar essa operacao.";exit;
... ... @@ -31,13 +30,18 @@ if (ob_get_level() == 0) ob_start();
31 30 exit;
32 31 }
33 32 if (isset($_FILES['i3GEOuploadcsv']['name'])){
34   - require_once (dirname(__FILE__)."/../../ms_configura.php");
35 33 echo "<p class='paragrafo' >Carregando o arquivo...</p>";
36 34 ob_flush();
37 35 flush();
38 36 sleep(1);
39 37 $arqcsv = $_FILES['i3GEOuploadcsv']['tmp_name'];
40 38 $nomePrefixo = str_replace(" ","_",removeAcentos($_FILES['i3GEOuploadcsv']['name']));
  39 +
  40 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  41 + $nomePrefixo = strip_tags($nomePrefixo);
  42 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
  43 + $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
  44 +
41 45 $nomePrefixo = $nomePrefixo."_".(nomeRandomico(4)).".csv";
42 46  
43 47 $Arquivo = $_FILES['i3GEOuploadcsv']['tmp_name'];
... ... @@ -49,6 +53,13 @@ if (ob_get_level() == 0) ob_start();
49 53 echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ".$dir_tmp."/".$nomePrefixo;paraAguarde();exit;
50 54 }
51 55 $arqcsv = $dir_tmp."/".$nomePrefixo;
  56 +
  57 + $checkphp = fileContemString($dirmap."/".$nomePrefixo,"<?");
  58 + if($checkphp == true){
  59 + unlink($dirmap."/".$nomePrefixo);
  60 + exit;
  61 + }
  62 +
52 63 //pega os parametros de conexao
53 64 include("classe_metaestat.php");
54 65 $m = new Metaestat();
... ...
admin/php/metaestat_uploaddados_submit.php
... ... @@ -2,12 +2,25 @@
2 2 $colunasarquivo = "";
3 3 $nomearquivoserv = "";
4 4 error_reporting(0);
5   -//var_dump($_FILES);exit;
  5 +include_once(dirname(__FILE__)."/login.php");
6 6 if (isset($_FILES['i3GEOuploadArquivo']['name']))
7   -{
8   - require_once (dirname(__FILE__)."/../../ms_configura.php");
  7 +{
9 8 $Arquivoup = $_FILES['i3GEOuploadArquivo']['tmp_name'];
10   - $nomearquivoserv = $dir_tmp."/upload".basename($Arquivoup).".csv";
  9 +
  10 + $nomePrefixo = str_replace(" ","_",str_replace(".csv","",$_FILES['i3GEOuploadArquivo']['name']));
  11 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  12 + $nomePrefixo = strip_tags($nomePrefixo);
  13 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
  14 + $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
  15 +
  16 + $nomearquivoserv = $dir_tmp."/uploaddados".$nomePrefixo.".csv";
  17 +
  18 + $checkphp = fileContemString($nomearquivoserv,"<?");
  19 + if($checkphp == true){
  20 + unlink($nomearquivoserv);
  21 + exit;
  22 + }
  23 +
11 24 //echo $nomearquivoserv;
12 25 if(file_exists($nomearquivoserv)){
13 26 unlink($nomearquivoserv);
... ... @@ -34,10 +47,12 @@ if (isset($_FILES[&#39;i3GEOuploadArquivo&#39;][&#39;name&#39;]))
34 47 <script>
35 48  
36 49 <?php echo "c = '$colunasarquivo';";?>
37   -<?php echo "d = '$nomearquivoserv';";?>
  50 +<?php
  51 +//echo "d = '$nomearquivoserv';";
  52 +echo "d = '';";
  53 +?>
38 54 window.parent.i3GEOadmin.uploaddados.COLUNASARQUIVO = c;
39 55 window.parent.i3GEOadmin.uploaddados.NOMEARQUIVOSERV = d;
40 56 window.parent.i3GEOadmin.uploaddados.upload.fimsubmit();
41   -
42 57 </script>
43 58 </html>
44 59 \ No newline at end of file
... ...
admin/php/metaestat_uploadshp_submit.php
... ... @@ -2,7 +2,6 @@
2 2 /*
3 3 * Faz o upload de shapefile e insere no banco de dados
4 4 */
5   -include_once("admin.php");
6 5 include_once("login.php");
7 6 set_time_limit(0);
8 7 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){
... ... @@ -37,15 +36,25 @@ if ($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;] == &quot;&quot;){
37 36 }
38 37 if (isset($_FILES['i3GEOuploadshp']['name'])){
39 38 require_once (dirname(__FILE__)."/../../ms_configura.php");
  39 + if(isset($logExec) && $logExec["upload"] == true){
  40 + i3GeoLog("prog: metaestat_uploadshp_submit filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);
  41 + }
  42 +
40 43 echo "<p class='paragrafo' >Carregando o arquivo...</p>";
41 44 ob_flush();
42 45 flush();
43 46 sleep(1);
  47 +
  48 +
44 49 $arqshp = $_FILES['i3GEOuploadshp']['tmp_name'];
45 50 //verifica nomes e sobe arquivo
46 51 verificaNome($_FILES['i3GEOuploadshp']['name'],"shp");
47 52 $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
48   - $nomePrefixo = $nomePrefixo."_".(nomeRandomico(4));
  53 +
  54 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  55 + $nomePrefixo = strip_tags($nomePrefixo);
  56 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
  57 + $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
49 58  
50 59 $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name'];
51 60 $status = move_uploaded_file($Arquivo,$dir_tmp."/".$nomePrefixo.".shp");
... ... @@ -73,6 +82,32 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])){
73 82 echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ".$dir_tmp."/".$nomePrefixo;paraAguarde();
74 83 exit;
75 84 }
  85 +
  86 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
  87 + if($checkphp == true){
  88 + unlink($dirmap."/".$nomePrefixo.".prj");
  89 + unlink($dirmap."/".$nomePrefixo.".shx");
  90 + unlink($dirmap."/".$nomePrefixo.".dbf");
  91 + unlink($dirmap."/".$nomePrefixo.".shp");
  92 + exit;
  93 + }
  94 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
  95 + if($checkphp == true){
  96 + unlink($dirmap."/".$nomePrefixo.".prj");
  97 + unlink($dirmap."/".$nomePrefixo.".shx");
  98 + unlink($dirmap."/".$nomePrefixo.".dbf");
  99 + unlink($dirmap."/".$nomePrefixo.".shp");
  100 + exit;
  101 + }
  102 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
  103 + if($checkphp == true){
  104 + unlink($dirmap."/".$nomePrefixo.".prj");
  105 + unlink($dirmap."/".$nomePrefixo.".shx");
  106 + unlink($dirmap."/".$nomePrefixo.".dbf");
  107 + unlink($dirmap."/".$nomePrefixo.".shp");
  108 + exit;
  109 + }
  110 +
76 111 $arqshp = $dir_tmp."/".$nomePrefixo.".shp";
77 112  
78 113 //pega os parametros de conexao
... ... @@ -363,6 +398,9 @@ else{
363 398 echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
364 399 }
365 400 function verificaNome($nome,$ext){
  401 + if(strlen(basename($nome)) > 200){
  402 + exit;
  403 + }
366 404 $nome = strtolower($nome);
367 405 $lista = explode(".",$nome);
368 406 $extensao = $lista[count($lista) - 1];
... ...
ferramentas/aplicarsld/upload.php
... ... @@ -41,7 +41,10 @@ if (isset($_FILES[&#39;i3GEOaplicarsld&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES[&#39;i3GEOa
41 41  
42 42 $ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
43 43  
44   - $ArquivoDest = str_replace(".sld","",$ArquivoDest).".sld";
  44 + $ArquivoDest = str_replace(".sld","",$ArquivoDest);
  45 + $ArquivoDest = str_replace(".","",$ArquivoDest).".sld";
  46 +
  47 +
45 48 verificaNome($ArquivoDest);
46 49  
47 50 //sobe arquivo
... ...
ferramentas/importarwmc/upload.php
... ... @@ -33,7 +33,9 @@ if(isset($_FILES[&#39;i3GEOimportarwmc&#39;][&#39;name&#39;]) &amp;&amp; !($_POST[&quot;i3GEOimportarwmcurl&quot;]
33 33 //verifica nomes
34 34 $ArquivoDest = $_FILES['i3GEOimportarwmc']['name'];
35 35 $ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
36   - $ArquivoDest = str_replace(".xml","",$ArquivoDest).".xml";
  36 +
  37 + $ArquivoDest = str_replace(".xml","",$ArquivoDest);
  38 + $ArquivoDest = str_replace(".","",$ArquivoDest).".xml";
37 39  
38 40 $ArquivoDest = strip_tags($ArquivoDest);
39 41 $ArquivoDest = htmlspecialchars($ArquivoDest, ENT_QUOTES);
... ...
ferramentas/upload/upload.php
... ... @@ -67,9 +67,9 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
67 67 //remove acentos
68 68 $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
69 69  
  70 + $nomePrefixo = str_replace(".","",$nomePrefixo);
70 71 $nomePrefixo = strip_tags($nomePrefixo);
71 72 $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
72   -
73 73 $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true));
74 74  
75 75 //sobe arquivo
... ... @@ -104,14 +104,26 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
104 104  
105 105 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
106 106 if($checkphp == true){
  107 + unlink($dirmap."/".$nomePrefixo.".shp");
  108 + unlink($dirmap."/".$nomePrefixo.".dbf");
  109 + unlink($dirmap."/".$nomePrefixo.".shx");
  110 + unlink($dirmap."/".$nomePrefixo.".prj");
107 111 exit;
108 112 }
109 113 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
110 114 if($checkphp == true){
  115 + unlink($dirmap."/".$nomePrefixo.".shp");
  116 + unlink($dirmap."/".$nomePrefixo.".dbf");
  117 + unlink($dirmap."/".$nomePrefixo.".shx");
  118 + unlink($dirmap."/".$nomePrefixo.".prj");
111 119 exit;
112 120 }
113 121 $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
114 122 if($checkphp == true){
  123 + unlink($dirmap."/".$nomePrefixo.".shp");
  124 + unlink($dirmap."/".$nomePrefixo.".dbf");
  125 + unlink($dirmap."/".$nomePrefixo.".shx");
  126 + unlink($dirmap."/".$nomePrefixo.".prj");
115 127 exit;
116 128 }
117 129  
... ...
ferramentas/uploaddbf/upload.php
... ... @@ -50,10 +50,12 @@ if (isset($_FILES[&#39;i3GEOuploaddbffile&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES[&#39;i3G
50 50 $ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
51 51  
52 52 if($_GET["i3GEOuploaddbftipoarquivo"] != "dbf"){
53   - $ArquivoDest = str_replace(".csv","",$ArquivoDest).".csv";
  53 + $ArquivoDest = str_replace(".csv","",$ArquivoDest);
  54 + $ArquivoDest = str_replace(".","",$ArquivoDest).".csv";
54 55 }
55 56 else{
56   - $ArquivoDest = str_replace(".dbf","",$ArquivoDest).".dbf";
  57 + $ArquivoDest = str_replace(".dbf","",$ArquivoDest);
  58 + $ArquivoDest = str_replace(".","",$ArquivoDest).".dbf";
57 59 }
58 60  
59 61 $ArquivoDest = strip_tags($ArquivoDest);
... ...
ferramentas/uploadgpx/upload.php
... ... @@ -44,7 +44,8 @@ if (isset($_FILES[&#39;i3GEOuploadgpx&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES[&#39;i3GEOup
44 44 //verifica nomes
45 45 $ArquivoDest = $_FILES['i3GEOuploadgpx']['name'];
46 46 $ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
47   - $ArquivoDest = str_replace(".gpx","",$ArquivoDest).".gpx";
  47 + $ArquivoDest = str_replace(".gpx","",$ArquivoDest);
  48 + $ArquivoDest = str_replace(".","",$ArquivoDest).".gpx";
48 49  
49 50 $ArquivoDest = strip_tags($ArquivoDest);
50 51 $ArquivoDest = htmlspecialchars($ArquivoDest, ENT_QUOTES);
... ...
ferramentas/uploadkml/upload.php
... ... @@ -45,7 +45,8 @@ if (isset($_FILES[&#39;i3GEOuploadkml&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES[&#39;i3GEOup
45 45 //verifica nomes
46 46 $ArquivoDest = $_FILES['i3GEOuploadkml']['name'];
47 47 $ArquivoDest = $ArquivoDest . md5(uniqid(rand(), true));
48   - $ArquivoDest = str_replace(".kml","",$ArquivoDest).".kml";
  48 + $ArquivoDest = str_replace(".kml","",$ArquivoDest);
  49 + $ArquivoDest = str_replace(".","",$ArquivoDest).".kml";
49 50  
50 51 $ArquivoDest = strip_tags($ArquivoDest);
51 52 $ArquivoDest = htmlspecialchars($ArquivoDest, ENT_QUOTES);
... ...
ferramentas/uploadsimbolo/upload.php
... ... @@ -52,7 +52,8 @@ if (isset($_FILES[&#39;i3GEOuploadsimboloarq&#39;][&#39;name&#39;]) &amp;&amp; strlen(basename($_FILES[&#39;
52 52  
53 53 $nome = basename($_FILES['i3GEOuploadsimboloarq']['name']);
54 54  
55   - $nome = str_replace(".png","",$nome).".png";
  55 + $nome = str_replace(".png","",$nome);
  56 + $nome = str_replace(".","",$nome).".png";
56 57  
57 58 $nome = strip_tags($nome);
58 59 $nome = htmlspecialchars($nome, ENT_QUOTES);
... ...