IvanSerrano Posted March 12, 2012 Report Share Posted March 12, 2012 Boa tarde Estou a criar um site em php e a minha duvida é a seguinte criei o login tudo bem para casa utilizador e cada utilizador acede aos seus ficheiros até ai tudo bem so que nao sei como inserir permissoes em pastas.. ou seja eu sem fazer login consigo aceder a pasta seguinte: http://localhost/arquivos/uploads/Ivan/Chrysanthemum.jpg'>http://localhost/arquivos/uploads/Ivan/Chrysanthemum.jpg fora do site sem login se eu fizer: http://localhost/arquivos/uploads/Ivan acedo aos ficheiros todos do utilizador Como posso proteger isso? Cumprimentos Link to comment Share on other sites More sharing options...
softklin Posted March 13, 2012 Report Share Posted March 13, 2012 Assumindo que usas o Apache, para prevenir a listagem dos ficheiros dos utilizadores, podes criar um ficheiro .htacces (ponto htaccess) na raiz do site, e acrescentar-lhe o seguinte conteúdo: Options -Indexes Isto impede a listagem, mas não o download. Para controlares quem faz o download de cada ficheiro, precisas de proibir o acesso direto por HTTP e passa a fornecer os ficheiros pelo PHP, após a autorização. Isto funciona porque enquanto todo o acesso por HTTP ao ficheiro é proibido, o utilizador não consegue aceder diretamente ao endereço, mas o PHP pode aceder-lhe porque está do lado do servidor, e usa o próprio sistema de ficheiros. Para uma implementação básica, vais precisar de: - um script PHP para download - outro ficheiro .htaccess na pasta "uploads" O ficheiro PHP tem a finalidade de apontar para todos os downloads. Por exemplo: download.php?file=Chrysanthemum.jpg Aqui, verificas qual o utilizador que está online, e consoante o seu nome, vais buscar o ficheiro à pasta, se existir. Para o devolveres ao utilizador, abre o ficheiro com o PHP, utilizando a função file_get_contents e fazes echo para o browser. Vais precisar ainda de uns cabeçalhos adicionais para que o browser não fique com um monte de gatafunhos, mas faça o download do ficheiro. Faz uma pesquisa no fórum para esta parte, aqui na secção de PHP isso foi discutido recentemente. O outro ficheiro .htaccess tem como objetivo proibir o acesso direto aos ficheiros por HTTP, para que apenas sejam acessíveis pelo script download.php . Para isso, basta na pasta uploads criar um ficheiro .htaccess com este conteúdo: Deny from all Desta forma, os ficheiros presentes nessa pasta e subpastas não vão ser mais acessíveis por HTTP. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
IvanSerrano Posted March 15, 2012 Author Report Share Posted March 15, 2012 Boa tarde Como e que crio um ficheiro htaccess pode ser a mão? mudando a extensão? se sim qual é a extensão desse arquivo. Eu ja andei a testar assim .htaccess.conf e escrev Options -Indexes e não me bloqueia acesso a pasta nenhuma. Estou a utilizar o Xampp ja vi o arquivo httpd.conf e ta assim: DocumentRoot "C:/xampp/htdocs" <Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all </Directory> tenho que alterar algo? Desculpem mas não entendo muito de arquivos .htaccess Cumprimentos Link to comment Share on other sites More sharing options...
IvanSerrano Posted March 17, 2012 Author Report Share Posted March 17, 2012 Boa noite Depois de muita pesquisa já entendi e criei o ficheiro htaccess =) Obrigado Cumprimentos Link to comment Share on other sites More sharing options...
softklin Posted March 18, 2012 Report Share Posted March 18, 2012 Ainda bem que conseguiste por ti próprio 🙂 Como nota, visto que tens acesso ao servidor (vais fazer isso numa máquina controlada por ti), também podias editar nesse httpd.conf Os ficheiros .htaccess são criados com esse mesmo nome, (.htaccess (ponto htaccess)), cuja "extensão" é htaccess. Na verdade, noutros sistemas de ficheiros, como os usados na maioria das distros de Linux, isso é um ficheiro oculto (começa por . ) chamado htaccess. No Windows, optaram por continuar a usar esse nome, possivelmente por questões de portabilidade de código entre diferentes sistemas. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now