Pasta protegida e com acesso somente para assinantes

537 views
Skip to first unread message

Rodrigo

unread,
Jan 6, 2009, 12:11:44 PM1/6/09
to LISTA PHP
Olá!

Procurei algo mais específico, porém não encontrei nada concreto sobre
o assunto.

Eu pretendo desenvolver um site com conteúdo exclusivo de fotos de
modelos no estilo The Gril do Terra, Bella da Semana, etc...

Vai haver uma parte do conteúdo liberada a todos os usuários e uma
parte será restrita para assinantes pagantes. Então vem a dúvida, qual
a melhor forma de proteger esse conteúdo somente para assinantes?

Pretendo criar tabelas no banco de dados com as informações dos
assinantes (Ex.: Nome, Login, Senha, Pagamentos, Acessos, etc).

Ao acessar a página, o usuário visualizará 10 sessões, sendo que
destas, apenas 6 poderão ser visualizadas. As imagens ficarão em
alguma pasta no servidor (Ex.: /fotos/ensaio1/sessao6/01.jpg).

Agora vem o problema!

Não quero que os usuários mais "espertinhos" espiem os caminhos das
fotos restritas e espalhem na rede. Na verdade, quero bloquear esses
arquivos para serem acessados apenas por Assinantes.

Estive pensando em bloquear no .htaccess, fazendo uma espécie de
"tratamento" das sessions para abrir um .jpg. Exemplo:
Ao solicitar a imagem /fotos/ensaio1/sessao6/01.jpg, o htaccess
redireciona para "checar_assinante.php", que verificará se o usuário
está logado e se a assinatura é válida, se for válida a imagem
aparece, senão o usuário é redirecionado para uma página de
assinaturas.

É um jeito "simples" e funcional, porém a imagem 01.jpg continuará
"dando sopa" no servidor. Existe algum meio de bloquear o acesso dela
para ser exibida apenas pela página "checar_assinante.php", por
exemplo?


Desde já, agradeço a ajuda!

[moderação] Erick Couto

unread,
Jan 6, 2009, 12:17:50 PM1/6/09
to list...@googlegroups.com
você mesmo deu a solução..
bloqueia pelo .htaccess

2009/1/6 Rodrigo <rodrigo....@gmail.com>

Bernardo Vieira

unread,
Jan 6, 2009, 12:20:12 PM1/6/09
to list...@googlegroups.com
O jeito fácil e lento: tire as fotos do document root de forma que elas
não sejam acessíveis diretamente pela url do arquivo e use um script
php para servir a imagem.
O jeito difícil e rápido:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritemap

Renato de Freitas Freire

unread,
Jan 6, 2009, 12:25:20 PM1/6/09
to list...@googlegroups.com

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 12:33:16 PM1/6/09
to list...@googlegroups.com
o fi, de uma forma bem pratica, faça com que as imagens sejam carregas via PHP, ai tem como vc bloqueá-las, fazendo login.

sacou???

Renato de Freitas Freire

unread,
Jan 6, 2009, 12:37:32 PM1/6/09
to list...@googlegroups.com
E pra evitar que peguem o link e distribuam pela net, basta vc abrir o arquivo de imagem com o php (fopen) e imprimi-lo na pagina que irá visualizar... 
mas ainda fica a opção do cara salvar a imagem e disponibilizar de outra maneira... a unica diferenca eh q nao vai gastar banda do seu site...


--
Renato de Freitas Freire
ren...@morfer.org



Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 12:44:19 PM1/6/09
to list...@googlegroups.com
nao, tipo, vc vai salvar as imagens em um bd, ai vc busca a imagem e carrega usando a lib gd2, sacou????

procura no google q vc vai axar, pq nao vai existir "fisicamente" a imagem, para download.

era isto q eu keria dizer

Allan

unread,
Jan 6, 2009, 12:39:32 PM1/6/09
to list...@googlegroups.com
desabilita qualquer interaçao com o site com JS para ele nao copiar a img, esconde o diretorio que ela está, ou seja, só deixa a visualizaçao na tela mesmo, o resto voce esconde com JS

2009/1/6 Renato de Freitas Freire <rena...@gmail.com>

Allan

unread,
Jan 6, 2009, 12:39:32 PM1/6/09
to list...@googlegroups.com
desabilita qualquer interaçao com o site com JS para ele nao copiar a img, esconde o diretorio que ela está, ou seja, só deixa a visualizaçao na tela mesmo, o resto voce esconde com JS

2009/1/6 Renato de Freitas Freire <rena...@gmail.com>
E pra evitar que peguem o link e distribuam pela net, basta vc abrir o arquivo de imagem com o php (fopen) e imprimi-lo na pagina que irá visualizar... 

Renato de Freitas Freire

unread,
Jan 6, 2009, 12:48:55 PM1/6/09
to list...@googlegroups.com
Só toma cuidado para seu site nao ficar extremamente lento.. 
salvar dados binarios no bd faz um estrago se vc nao souber o que esta fazendo...


--
Renato de Freitas Freire
ren...@morfer.org



2009/1/6 Laerte Mateus Rodrigues <laer...@gmail.com>

Mauricio Vargas

unread,
Jan 6, 2009, 12:56:35 PM1/6/09
to list...@googlegroups.com
 
tem o basiquissimo <img src=”URL da imagem” oncontextmenu=”return false”>
nao bloqueia mas dificulta
 
w3c acho que aceita

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 12:57:18 PM1/6/09
to list...@googlegroups.com
eh pra isto q existe a LIB gzip, ela compacta arquivos binários, salvando em banco diminui relativamente, tbm tem q tomar cuidado com o tipo de imagem q vai salvar, se vai ser jpg, png ou BMP (suicídio!!!!)

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 12:58:25 PM1/6/09
to list...@googlegroups.com
o arquivo .php tem q ter o seguinte comando

header("Content-type:image/png");

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 12:59:22 PM1/6/09
to list...@googlegroups.com
uma forma d bloquear a busca do código fonte é definir um alert para clicar com o botão direito do mouse e o botão de menu do teclado, ai bloqueia tudo tbm

Bruno Gross

unread,
Jan 6, 2009, 1:02:33 PM1/6/09
to list...@googlegroups.com
vc ainda acredita que isso funciona???

talvez em 1997 com o IE 4 isso devia dificultar

2009/1/6 Laerte Mateus Rodrigues <laer...@gmail.com>
uma forma d bloquear a busca do código fonte é definir um alert para clicar com o botão direito do mouse e o botão de menu do teclado, ai bloqueia tudo tbm






--
Visite: www.UpaLele.com

att.
Bruno Gross
Analista de Sistemas
Celular: (21) 78545483
Rádio ID: 83*39379

Esta mensagem, incluindo seus anexos, pode conter informações confidenciais e/ou privilegiadas. Se você não for a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Caso esta mensagem tenha sido recebida por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida elimine-a do seu sistema. Agradeço sua cooperação.

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 1:04:26 PM1/6/09
to list...@googlegroups.com
bruno, nenhum método de segurança é 100% garantido!

mas pelo menos, dificulta a ação de pessoas inexperientes

Mauricio Vargas

unread,
Jan 6, 2009, 1:04:44 PM1/6/09
to list...@googlegroups.com
chrome, firefox e até mesmo ie7, dá o alert e depois abre o menu
 
hauehuaehuae
bugadasso

Sent: Tuesday, January 06, 2009 4:02 PM
Subject: [ PHP - Google ] Re: Pasta protegida e com acesso somente para assinantes

[moderação] Erick Couto

unread,
Jan 6, 2009, 1:05:16 PM1/6/09
to list...@googlegroups.com
a única forma de esconder é como o gmail faz, tenta ver o source!
tudo é carregado com ajax.. depois da página cru montada (que não tem nada)... mesmo assim qualquer carinha com o firebug
vai lá e vê o código todinho que trafega via ajax!

2009/1/6 Bruno Gross <bruno...@gmail.com>

Mauricio Vargas

unread,
Jan 6, 2009, 1:09:11 PM1/6/09
to list...@googlegroups.com
exato, nem o terra " the girl " lá, consegue, tem as areas restritas de algumas fotos, e eu pego normalmente, só abrindo pelo chrome e posso passar pra quem eu quiser...
 
posso ta falando merda (eu nao sou programador, só Webdesigner POGamador) e aquele sistema que tem em alguns sites de downloads maiores?
ele cria um link 'temporario' pro download, dai voce começa o download, se voce acessa denovo o link depois de, sei la, meia hora... o link nao funciona mais, dai tu 'abre outra sessão' acessando pelo site e pega o link
 
nao tem como fazer?
 
 

Sent: Tuesday, January 06, 2009 4:05 PM
Subject: [ PHP - Google ] Re: Pasta protegida e com acesso somente para assinantes

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 1:11:27 PM1/6/09
to list...@googlegroups.com
não entendi a sua pergunta mauricio

2009/1/6 Mauricio Vargas <pixelc...@gmail.com>

Mauricio Vargas

unread,
Jan 6, 2009, 1:15:44 PM1/6/09
to list...@googlegroups.com
Peguei como exemplo este site.
 
 
Baixe este arquivo por exemplo, em qualquer mirror lá embaixo... ele te dará um link 'direto' do arquivo...
este link voce pode até reiniciar o pc e acessar novamente que ele vai acessar o link direto que vai fazer o download do arquivo...
depois de meia hora mais ou menos, se tu tentar acessar o link denovo, ele diz que o link não é mais valido... ai voce tem que voltar nessa pagina que te passei, clicar no mirror novamente e pegar o link novo...
 
 
Deu pra entender?
 
=P

Laerte Mateus Rodrigues

unread,
Jan 6, 2009, 1:38:34 PM1/6/09
to list...@googlegroups.com
qndo vc clicka em download, vc usa o método POST para acessar a outra página, por isto q, qndo vc fexa o browser e abre de novo na msma URL ele nao deixa vc fazer o download =)

Alexandre Gaigalas

unread,
Jan 6, 2009, 1:53:07 PM1/6/09
to list...@googlegroups.com
Impedir a pessoa de copiar só deixa ela com mais vontade de copiar, e ela vai conseguir =) Alguém sempre consegue.. eu nunca vi um sistema a prova de print screen.

Esses servidores como o Rapidshare fazem links temporários com autenticação para previnir sobrecargas, previnir que outros sites hotlinkem o conteúdo. Não tem nada a ver com acesso restrito, até mesmo porque qualquer um pode baixar.

Se o seu conteúdo for bom, as pessoas vão comprar. Algumas vão copiar, mas faz parte.

--
Alexandre Gomes Gaigalas
alex...@gaigalas.net
http://Alexandre.Gaigalas.Net

Rodrigo

unread,
Jan 6, 2009, 2:01:09 PM1/6/09
to LISTA PHP
Gostei das sugestões!

Colocar a imagem no BD seria a forma mais "segura", porém ficaria
muito pesado, pois as imagens (fotos) seriam numa qualidade "muito
boa" pros assinantes.

Eu ainda não sei o perfil exato dos assinantes e usuários destes
sites, se eles manjam muito ou são apenas usuários normais que pensam
que tão "invandindo" o site quando vêem a imagem restrita.

A dificuldade maior seria "ocultar" apenas para não-assinantes as
imagens .jpg no servidor. O assinante poderá salvar a imagem, se
quiser. Ou seja, não preciso bloquear por JS, inclusive acho chato
esse negócio de bloquear os recursos para salvar "diretamente". Nada
que um "Print Screen" não resolva... hehe

Digo e repito, a dificuldade é deixar um usuário normal ver as imagens
em: /fotos/ensaio1/sessao1/01.jpg, /fotos/ensaio1/sessao2/01.jpg, /
fotos/ensaio1/sessao3/01.jpg, /fotos/ensaio1/sessao4/01.jpg, /fotos/
ensaio1/sessao5/01.jpg e /fotos/ensaio1/sessao6/01.jpg e não conseguir
acessar os /fotos/ensaio1/sessao7/01.jpg, /fotos/ensaio1/
sessao8/01.jpg, /fotos/ensaio1/sessao9/01.jpg e /fotos/ensaio1/
sessao10/01.jpg, por exemplo.

Ainda não li as soluções passadas por link, mas vou analisar.


Acredito que se eu bloquear o acesso de todas pastas: sessao1,
sessao2.....até sessao8, sessao9 e sessao10 por htaccess e usar algum
comando PHP, como o fopen para abrir dentro das sessoes.php, acho que
funcionaria do jeito que eu quero, né?

OBS.: Tenho que estudar esses comandos e controles, pois não sou
expert nesse assunto ainda... hehe


Novamente agradeço a contribuição!

Pablo Augusto

unread,
Jan 6, 2009, 2:01:43 PM1/6/09
to list...@googlegroups.com
Não se esqueça que TODO conteúdo que você vê em seu navegador tem de ser baixado antes para sua máquina, e usuários experientes SEMPRE vão conseguir (de qualquer forma que seja) copiar as imagens. Nem que seja copiando a tela e jogando no mspaint =)

Há como dificultar, mas não como coibir definitivamente.

Abçs.

2009/1/6 Alexandre Gaigalas <alex...@gaigalas.net>

Rodrigo

unread,
Jan 6, 2009, 2:03:41 PM1/6/09
to LISTA PHP
Renato, boa tarde!

Obrigado pela sua sugestão, mas nesse caso, não funcionaria do jeito
que eu gostaria, pois o usuário não-assinante continuaria tendo acesso
ao arquivo restrito dentro do meu site.


On 6 jan, 15:25, "Renato de Freitas Freire" <renat...@gmail.com>
wrote:
> Olha esse tuto:
>
> http://www.codigofonte.com.br/artigo/php/como-bloquear-links-para-ima...
>
> --
> Renato de Freitas Freire
> ren...@morfer.org
>
> 2009/1/6 Bernardo Vieira <bvieira.li...@gmail.com>
> > > Desde já, agradeço a ajuda!- Ocultar texto entre aspas -
>
> - Mostrar texto entre aspas -

Rodrigo

unread,
Jan 6, 2009, 2:07:37 PM1/6/09
to LISTA PHP
Certo...

Porque a primeira opção seria lenta?
Em qual pasta "fora do root" eu deveria colocar os arquivos, por
exemplo?

Vou ler e tentar entender a segunda opção.

Obrigado!

Rodrigo

unread,
Jan 6, 2009, 2:09:38 PM1/6/09
to LISTA PHP
O problema não é nem gastar banda do site e sim, ter acesso sem ter
pago nada.

O assinante poderá, se quiser, até imprimir a foto... hehe
Desde que continue pagando a assinatura mensal.

Na verdade, acho que vou conseguir o que quero através desse seu
método.

Obrigado pela resposta!

On 6 jan, 15:37, "Renato de Freitas Freire" <renat...@gmail.com>
wrote:
> E pra evitar que peguem o link e distribuam pela net, basta vc abrir o
> arquivo de imagem com o php (fopen) e imprimi-lo na pagina que irá
> visualizar...
> mas ainda fica a opção do cara salvar a imagem e disponibilizar de outra
> maneira... a unica diferenca eh q nao vai gastar banda do seu site...
>
> --
> Renato de Freitas Freire
> ren...@morfer.org
>
> On Tue, Jan 6, 2009 at 3:33 PM, Laerte Mateus Rodrigues
> <laert...@gmail.com>wrote:
>
>
>
> > o fi, de uma forma bem pratica, faça com que as imagens sejam carregas via
> > PHP, ai tem como vc bloqueá-las, fazendo login.
>
> > sacou???- Ocultar texto entre aspas -

Rodrigo

unread,
Jan 6, 2009, 2:11:11 PM1/6/09
to LISTA PHP
Obrigado pela sugestão, mas não é bem isso que necessito.

Mesmo assim, Obrigado!

On 6 jan, 15:56, "Mauricio Vargas" <pixelcriat...@gmail.com> wrote:
> tem o basiquissimo <img src="URL da imagem" oncontextmenu="return false">
> nao bloqueia mas dificulta
>
> w3c acho que aceita
>
> From: Renato de Freitas Freire
> Sent: Tuesday, January 06, 2009 3:48 PM
> To: list...@googlegroups.com
> Subject: [ PHP - Google ] Re: Pasta protegida e com acesso somente para assinantes
>
> Só toma cuidado para seu site nao ficar extremamente lento..
> salvar dados binarios no bd faz um estrago se vc nao souber o que esta fazendo...
>
> --
> Renato de Freitas Freire
> ren...@morfer.org
>
> 2009/1/6 Laerte Mateus Rodrigues <laert...@gmail.com>

Pablo Augusto

unread,
Jan 6, 2009, 2:11:20 PM1/6/09
to list...@googlegroups.com
Em qualquer pasta. Daí é só você ler a imagem com o caminho completo ou relativo deo server, não co caminho web. Ex:

/home/usuario/site1/imagens/ensaio1/foto12.png

P.A.

2009/1/6 Rodrigo <rodrigo....@gmail.com>

Bernardo Vieira

unread,
Jan 6, 2009, 2:17:58 PM1/6/09
to list...@googlegroups.com
É mais lenta pq você vai usar o php (que é voraz com recursos da
máquina) para ler o arquivo e mandar para o browser, ao invés de deixar
o apache cuidar disso tudo. É similar a armazenar o arquivo no DB, porém
fazê-lo no filesystem é mais eficiente. Pode colocar os arquivos que não
sejam diretamente acessíveis por url, desde que o usuário do apache
tenha permissão de leitura nessa pasta, e se você tiver usando php safe
mode, tem que garantir que o php pode ler o diretório.

Rodrigo

unread,
Jan 8, 2009, 8:42:21 PM1/8/09
to LISTA PHP
Estive analisando e no Bella da Semana, por exemplo, as imagens são
arquivos .php, exemplo: http://www.belladasemana.com.br/include/bellaphoto.jpg.php?id_assay=82&secao=1&foto=1
Nesse caso, essa foto não precisa ser assinante para visualizá-la.

No caso de ser exclusiva para assinantes, fica assim:
http://www.belladasemana.com.br/include/bellaphoto.jpg.php?id_assay=82&secao=17&foto=1
Ou seja, retorna um erro 403, proibindo o acesso ao arquivo .php que
gera a imagem e em seguida redireciona para a página inicial.

As imagens devem ficar armazenadas em uma pasta específica, como esta:
http://www.belladasemana.com.br/ensaios/dani_lopes/images/capa1.jpg,
porém se tentarmos acessar http://www.belladasemana.com.br/ensaios/dani_lopes/images/
aparece o Erro 403 (Forbidden/Proibido).

Enfim, alguém tem idéia de como fazer o PHP retornar 403 se a
"session" disser que o usuário não é assinante?


Obrigado!
> >> - Mostrar texto entre aspas -- Ocultar texto entre aspas -

Alexandre Gaigalas

unread,
Jan 8, 2009, 8:49:23 PM1/8/09
to list...@googlegroups.com
<?php header("HTTP/1.0 403 Forbidden"); ?>


2009/1/8 Rodrigo <rodrigo....@gmail.com>

Renato de Freitas Freire

unread,
Jan 8, 2009, 9:17:22 PM1/8/09
to list...@googlegroups.com
Correto...
mas o mais seguro é configurar o apache para não permitir listar o diretório.. ai o proprio apache se encarrega de nao deixar o usuario listar o conteudo do diretorio...

--
Renato de Freitas Freire
ren...@morfer.org



2009/1/8 Alexandre Gaigalas <alex...@gaigalas.net>

Edvaldo Rodrigues

unread,
Jan 9, 2009, 6:01:38 AM1/9/09
to list...@googlegroups.com
.htacess da uma pesquisada ele tem como fazer nao deixar acessar e nao deixar listar

2009/1/9 Renato de Freitas Freire <rena...@gmail.com>



--
Edvaldo Rodrigues

www.aerorodrigues.com
fone: +55 44 9957 7841
msn: edv...@aerorodrigues.com
Reply all
Reply to author
Forward
0 new messages