uebSITE Brasil & uebRADIOS Brasil

Base de Conhecimento

Manipular arquivos é útil, mas tome os devidos cuidados

Às vezes, precisamos ler, fazer o download ou adicionar informações a um arquivo. Nada melhor que usar readfile(), fopen() e as demais funções necessárias. O cuidado deve estar nos argumentos que você passar. Exemplo de código mal-feito:

Página ler.php

Código PHP:
<?php
$download = $_GET['arquivo'];
if(empty($download)){
 die();
}   
    
$manip = file('/home/site/public_html/download/' . $download);
foreach($manip as $line_num => $conteudo)
{   
    echo $conteudo . "\n<BR />";
}   
?>
Tudo funciona bem - bem inseguro.
Exemplo: Acessando o link abaixo, o site escreverá todo o código fonte.
http://www.exemplo.com/download/ler.php?arquivo=ler.php

Isso fica EXTREMAMENTE perigoso se utilizarem comandos para subir e descer diretórios.Exemplo:
http://www.exemplo.com/download/ler....o=../.htaccess

Logo, o caminho seria, por exemplo,: /home/exemplo/www/.htaccess

Em teoria, é possível acessar qualquer conteúdo do site, desde que se conheça a estrutura do mesmo e tenha permissão para tal.

Se você só for ler arquivos na mesma pasta, utilize str_replace(), para remover ".." e "/". Caso contrário, faça a devida programação para evitar problemas. Por exemplo, permita a leitura somente dos arquivos necessários, através da extensão, por exemplo.

Obs: Este tópico também se aplica à função highlight_file() / show_source()



Esta resposta lhe foi útil?

Adicionar aos Favoritos Adicionar aos Favoritos

Imprimir este Artigo Imprimir este Artigo


Powered by WHMCompleteSolution

Idioma:

Navegaçăo Rápida

Acesso ao Cliente

Email

Senha

Lembrar

Pesquisar