no meu site existem arquivos PHP que incluo em outros arquivos php... eles executam tarefas diferentes, como conectar-se ao meu banco de dados e várias outras funções... agora eu sei o caminho fornecido dos meus arquivos.. então posso fornecer o caminho como
http://www.mysite.com/myfiles/
isso fornecerá a lista de diretórios dos arquivos nesse diretório.
eu sei que para evitar a listagem de diretórios terei colocado um nome de arquivo index.html
OU index.php
fazendo isso em vez da listagem de diretórios
mas ainda sei o caminho do arquivo. http://www.mysite.com/myfiles/con.php
Fazendo isso o código é executado, mas você pode ver a fonte OFFCourse porque é do lado do cliente.
MAS existe uma maneira de obter esse arquivo PHP com seu código-fonte quando alguém sabe o caminho... não será um risco de segurança, não é?
Responder1
Bem, em primeiro lugar, você deve ser capaz de desabilitar a listagem de diretórios (tornando assim desnecessário poluir sua árvore de diretórios com arquivos index.php inúteis) apenas adicionando a seguinte linha em um arquivo .htaccess em seu diretório inclui:
Options -Indexes
Agora, com relação aos usuários serem capazes de obter o código-fonte do php, contanto que seu servidor web esteja configurado corretamente para interpretar arquivos php e não apenas servi-los diretamente, você deve ficar bem (assumindo que seus arquivos de inclusão não contêm echo()
nenhuma variável ou algo bobo assim).
Responder2
Se você tiver AddType ou SetHandler definido para arquivos PHP, ele será interpretado pelo apache/webserver antes de servir aos clientes. Assim, o cliente não verá a fonte do php, mas apenas o html gerado.
Responder3
Se bem entendi, você gostaria de obter a fonte PHP para pessoas que conhecem a URL real do arquivo PHP. Você pode usar algo assim, mas lembre-se: não é uma segurança real, então é melhor não incluir isso em arquivos PHP contendo coisas privadas como usuário/senha do banco de dados, etc.
<?php
if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
show_source(__FILE__);
}
?>
Dessa forma, apenas as pessoas que conhecem esse "hash" (e pessoas más que o forçam com força bruta) podem obter esse código-fonte acessandohttp://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W.