Base de Conhecimento
Central do Cliente > Base de Conhecimento > Manipular arquivos é útil, mas tome os devidos cuidados
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()
|
Adicionar aos Favoritos
Imprimir este Artigo
|
Powered by WHMCompleteSolution