Jump to content

duvida com permissoes.


IvanSerrano
 Share

Recommended Posts

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.